我有這段代碼用于使用許多不同的引數執行單個命令:
for ((i = $#; i > 0 ; i--)) ; do
grep -w -- "$1" codelist.lst || echo "'$1' not found"
shift
done
對于每個引數,該腳本為我提供了包含該引數的行的正確輸出,或者指示未找到任何行。
如果用戶沒有提供任何引數,我希望添加的是一條訊息,例如“請插入一個值”。我怎么做?
uj5u.com熱心網友回復:
您可以$#在嘗試運行回圈之前簡單地檢查:
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
零值意味著沒有提供任何引數。
如果您重視代碼的簡單性,另一種形式是意識到即使執行回圈本身,零也會導致回圈體不運行,因此您可以執行以下操作:
[[ $# -eq 0 ]] && echo "Please insert a value."
for ((i = $#; i > 0 ; i--)) ; do
grep -w -- "$1" codelist.lst || echo "'$1' not found"
shift
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463662.html
