首页 > 代码库 > Bash中简单算术运算的总结

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))

另外,以上所有算术运算实现方式,都不支持浮点精度运算,只支持整型运算。

Bash中简单算术运算的总结