簡體   English   中英

Linux Shell if語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM