[英]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
而不是echo
向stderr
打印消息,請嘗試:
cat <<< "Usage: ..." >&2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.