[英]bash/ksh add if no argument given echo add value please
我有使用多個不同的 arguments 執行單個命令的代碼:
for ((i = $#; i > 0 ; i--)) ; do
grep -w -- "$1" codelist.lst || echo "'$1' not found"
shift
done
對於每個參數,此腳本為我提供包含該參數的行的正確 output,或者指示未找到任何行。
如果用戶沒有提供 arguments,我想添加一條消息,例如“請插入一個值”。 我怎么做?
您可以在嘗試運行循環之前簡單地檢查$#
:
if [[ $# -eq 0 ]] ; then
echo "Please insert a value."
else
for ((i = $#; i > 0 ; i--)) ; do
grep -w -- "$1" codelist.lst || echo "'$1' not found"
shift
done
fi
零值意味着沒有提供 arguments。
如果您看重代碼的簡單性,另一種形式是意識到即使循環本身已執行,零也會導致循環體不運行,因此您可以執行以下操作:
[[ $# -eq 0 ]] && echo "Please insert a value."
for ((i = $#; i > 0 ; i--)) ; do
grep -w -- "$1" codelist.lst || echo "'$1' not found"
shift
done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.