相對(duì)于其他編程語(yǔ)言來(lái)說(shuō)在bash里面不能直接以變量加上變量的形式來(lái)表現(xiàn);比如我們先聲明兩個(gè)變量num1和num2然后再做運(yùn)算。
num1=2
num2=3
echo "$num1+$num2"
2+3
這里我們顯示的結(jié)果直接為2+3只是做了變量的替換,而不是做兩個(gè)變量的加法運(yùn)算;在bash里面變量默認(rèn)是以字符串類(lèi)型來(lái)存儲(chǔ)的;就算我們?cè)谶@里聲明的這兩個(gè)變量為整數(shù)也不會(huì)做運(yùn)算;declare命令-i可以聲明我們定義的變量為整型bash也只會(huì)做變量替換;
declare -i num3=9
declare -i num4=1
echo “$num3+$unm4”
9+1
對(duì)于bash來(lái)說(shuō)要做算數(shù)運(yùn)算必須使用特殊的算術(shù)運(yùn)算格式
使用let命令
let命令默認(rèn)是不會(huì)輸出結(jié)果至屏幕的;所以我們這里需要做變量賦值;將$num1+$num2的運(yùn)算后的值,賦值個(gè)另外一個(gè)變量sum
let $sum=$num1+$unm2
echo “$sum”
5
算術(shù)運(yùn)算表達(dá)式用[]直接賦值給一個(gè)變量;這里可以賦值也可以直接使用
$sum=$[$num3+$num4]
echo "$sum"
10
使用兩個(gè)小括號(hào)和[]用法相似
使用expr命令進(jìn)行運(yùn)算;將變量和運(yùn)算符做參數(shù)傳遞給expr做運(yùn)算
sum=$(expr $num3 + $num4)