No.1:使用 expr
eg. r=`expr 4 + 5`
echo $r
注意: 4 + 5 運算式中運算子和運算元之間要有空格
# 終於找到原因了,給力啊。
此外,對於乘法運算子 * ,使用expr需要加上\進行轉義 即 r=`expr 4 \* 5`
又及:expr運算式中沒有乘冪**運算
No.2:使用 $(( ))
eg. r=$(( 4 + 5 ))
echo $r
注意:$( 之間沒有空格, ((、)) 兩對同向括弧之間也沒有空格
No.3:使用 $[ ]
eg. r=$[ 4 + 5 ]
echo $r
注意:$[ 之間沒有空格
No.4:使用let
eg. let a=4+5
echo $a
注意:a=4+5 這個運算式同普通的算術運算式一樣,沒有空格
examples:
乘法:
r=`expr 4 \* 5`
echo $r
r=$(( 4 * 5 ))
echo $r
r=$[ 4 * 5 ]
echo $r
let r=4*5
echo $r
4個輸出都為:20
除法:
r=`expr 40 / 5`
echo $r
r=$(( 40 / 5 ))
echo $r
r=$[ 40 / 5 ]
echo $r
let r=40/5
echo $r
4個輸出都為:8
減法:
r=`expr 40 - 5`
echo $r
r=$(( 40 - 5 ))
echo $r
r=$[ 40 - 5 ]
echo $r
let r=40-5
echo $r
4個輸出都為:35
模數:
r=`expr 100 % 43`
echo $r
r=$(( 100 % 43 ))
echo $r
r=$[ 100 % 43 ]
echo $r
let r=100%43
echo $r
4個輸出都為:14
乘冪 (如 2 的 3 次方):
r=$(( 2 ** 3 ))
echo $r
r=$[ 2 ** 3 ]
echo $r
let r=2**3
echo $r
4個輸出都為:8
註:expr 沒有乘冪
雖然Bash shell有好幾種算術運算方法,但並不是每一種方法都可以跨平台的,為使指令碼能跨平台使用,最好使用`expr expression` 或 $(( )),Linux程式設計3rd一書建議使用 $(()) 。