我試圖創建一個退出錯誤來擴展前面的腳本。如果我輸入什麼,但現在一些什麼我迄今試圖爲:bash if for循環中的結構
sum=0
for num in "[email protected]"
do
echo $num | grep -i [^0-9+-]
if ["$?" = 1] then
echo "Sorry, '$num' is not a number"
fi
sum=$((sum + num))
done
echo $sum
例如,如果我在
add 1 2 3 four five
鍵入它會說
four
Sorry, 'four' is not a number
目前還不清楚在所有什麼你想實現嗎?如果一個不是數字的字符串被傳遞了,你仍然把它算作一個數字。這是對的嗎?另外$? = 1是錯誤的。正確的語法是$? -eq 1,但最好使用$? -gt 0它更可靠 – m47730
@ m47730可以說直接使用if命令而不是使用'$?'更好。 –
@TomFenech我同意你的意見。我在說,最好使用「-gt 0」代替「-eq 1」 – m47730