1. 使用expr
ex: r=` expr 4 + 5 `
r=` expr 4 \* 5 `
note 1: 數字與符號間要有空白。
note 2: 因為* 對於bash 來說有特殊意義(萬用字元),所以要先使用反斜線 (\) 來取消*的特殊意義。
note 3: expr無法使用(**)當作乘冪。
note 4:expr 無法處理浮點運算,因此須改用其他方式,如$(())。
2. 使用 $(())
ex: r=$(( 4 + 5))
r=$(echo "4.0*2.0"|bc)
note 1: 此方式不需要使用反斜線來取消*的特殊意義。
note 2: 亦可使用awk 來處理浮點運算,如:
r=$(awk 'BEGIN{print 4.0*2.0 }')
3. 使用$[]
ex: r=$[ 4 + 5 ]
4. 使用let
ex: m=10
let n=m+1
則n=11
(也可寫成let m=m+1 用來當作迴圈內計算)
NOTE:
雖然上述四種方式都可以達到需求,但並非每個方式均可跨平台使用,建議使用expr會有較好的可攜性。