Bash中簡單算術運算的總結

Bash中執行算術運算有很多種實現方式,下面總結如下:

  • Bash內建的let命令

let varName=expr      舉例:

n1=3
n2=4
let sum=n1+n2
n3=2
n4=10
n5=5
let n1++
let n2+=4
let sum=\(\(n1+n2\)*n5\)*(n4-n3)

表達式中有括號的,要對括號進行轉義,尤其是表達式中運算操作符右邊的括號!

  • $[expr]

varName=$[expr]     舉例:

n1=3
n2=4
sum=$[n1+n2]

n3=2
n4=10
n5=5
sum=$[((n1+n2)*n5)*(n4-n3)]
  • $((expr))

varName=$((expr))     舉例:

n1=3
n2=4
sum=$((n1+n2))

n3=2
n4=10
n5=5
sum=$((((n1+n2)*n5)*(n4-n3)))
  • expr命令

expr EXPRESSION ,其中EXPRESSION可以是 n1 + n2, n1 – n2, n1 > n2, n1 = n2等等,詳細信息可以man expr命令。特別注意的是EXPRESSION中各運算參數和運算操作符之間都要有空格隔開,而且運算參數以值引用的方式出現。例:

n1=3
n2=4
sum=`expr n1 + n2`
另外,expr命令在算術運算方面似乎不支持使用括號的複雜的算術表達式,只支持二元運算.
  • ((expr))

舉例:

n1=3
n2=4
((sum=n1+n2))

n3=2
n4=10
n5=5
((sum=((n1+n2)*n5)*(n4-n3)))

 

以上算術運算中,對運算表達式中的變量參數,可以直接使用變量參數,也可以以引用的方式,即 var 等同於 $var。賦值表達式中的被賦值變量除外。例:

let sum=num1+num2    等同於 let sum=$num1+$num2

sum=$[num1+num2]    等同於     sum=$[$num1+$num2]

sum=$((num1+num2))    等同於 sum=$(($num1+$num2))

((sum=num1+num2)) 等同於 ((sum=$num1+$num2))

另外,以上所有算術運算實現方式,都不支持浮點精度運算,只支持整型運算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章