您的位置:首页 > 运维架构 > Shell

Bash中简单算术运算的总结

2014-08-29 14:16 239 查看
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 false