[英]Linux Shell if-statements
我正在嘗試編寫一個將整數加在一起的腳本。 我的第一個腳本可以加數字
for number in $@; do
sum=$(($sum + $number))
done
echo $sum
現在,我正在嘗試編寫一條if語句,該語句檢查$ number是否為有效整數,如果不顯示錯誤消息,則終止該腳本。
if [ -z $number]; then
sum=$(($sum + $number))
else
echo $number
echo "Sorry, $number is not a number"
exit
fi
我已經嘗試了好幾個小時來解決這個問題,並且一直陷入困境,幫助會很不錯
-z
運算符不檢查字符串是否為數字,而是檢查字符串的長度是否為零。
沒有操作員可以檢查字符串是否為整數,但是在bash中有幾種方法可以執行此操作。 前面討論的答案應該會有所幫助 。
-z
測試只會測試變量是否為空(長度為零)。 如果您想知道它是一個整數,則可以使用正則表達式匹配,例如
if [[ $number =~ ^-?[0-9]+$ ]]; then
sum=$((sum + number))
else
echo "Sorry, $number is not a number"
exit
fi
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.