簡體   English   中英

當使用cat未找到參數時,bash打印幫助消息

[英]Bash printing a help message when no arguments are found using cat

我還應該做的是,如果沒有參數,我應該使用cat將“幫助”消息打印到標准錯誤設備上。 到目前為止,我可以理解並使用echo使其工作,但我的任務是僅使用cat來完成此操作。 當我嘗試行cat 2> (help message)它會轉到新行,我可以在其中鍵入任何內容,並導致腳本根本無法正確運行,唯一的轉義就是ctrl + z 如何使用cat而不是echo來完成此操作? 如果僅使用cat可能仍打印出stderr消息?

幫助信息

Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----.

#!/bin/bash
# concat script
if [[ $@ ]]
then
        for i in "$@"
        do
         cat "$i" && echo  "-----"
        done
exit 0
else
 cat 2> "Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----."
exit 1
fi

cat用於從文件輸出數據。 要從字符串輸出數據,請使用echo

2>用於將標准輸出重定向到文件。 要將stdout指向stderr,請使用>&2

在所有:

echo >&2 "Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----."

如果您真的想避免使用正確的工具來完成工作,則可以根據here文檔(創建一個cat可以讀取的臨時文件)將其重寫:

cat << EOF >&2
Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----.
EOF

如果要使用cat而不是echostderr打印消息,請嘗試:

cat <<< "Usage: ..." >&2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM