对于基本运算,可以使用let, $(())和$[]
对于高级运算,使用expr和bc这两个工具
[hupeng@hupeng-vm shell]$n1=10 [hupeng@hupeng-vm shell]$n2=2 [hupeng@hupeng-vm shell]$let res=n1+n2 #let的使用 [hupeng@hupeng-vm shell]$echo $res 12 [hupeng@hupeng-vm shell]$let res=n1*n2 [hupeng@hupeng-vm shell]$echo $res 20 [hupeng@hupeng-vm shell]$let res+=1 #let 支持+=, -=, *=,/=,%= [hupeng@hupeng-vm shell]$echo $res 21 [hupeng@hupeng-vm shell]$let res-=12 [hupeng@hupeng-vm shell]$echo $res 9 [hupeng@hupeng-vm shell]$let res/=3 [hupeng@hupeng-vm shell]$echo $res 3 [hupeng@hupeng-vm shell]$let res++ #let支持++,--操作 [hupeng@hupeng-vm shell]$echo $res 4 [hupeng@hupeng-vm shell]$let --res [hupeng@hupeng-vm shell]$echo $res 3 [hupeng@hupeng-vm shell]$a=10 [hupeng@hupeng-vm shell]$b=2 [hupeng@hupeng-vm shell]$res=$[ a * b] # $[]的使用 [hupeng@hupeng-vm shell]$echo $res 20 [hupeng@hupeng-vm shell]$res=$[ $res / 4 + 3 ] # []中也可以使用$前缀 [hupeng@hupeng-vm shell]$echo $res 8 [hupeng@hupeng-vm shell]$res=$(( a + b )) # $(()使用 前面要加$ [hupeng@hupeng-vm shell]$echo $res 12 [hupeng@hupeng-vm shell]$res=`expr 10 + 2` # expr的使用 [hupeng@hupeng-vm shell]$res=$(expr $a + $b) [hupeng@hupeng-vm shell]$res=$(expr $a * $b) expr: syntax error [hupeng@hupeng-vm shell]$res=$(expr $a \* $b) # 乘号要用\*表示
以上只能进行整数运算,要进行浮点数运算,需要使用bc
[hupeng@hupeng-vm shell]$echo "2 * 2.3" | bc 4.6 [hupeng@hupeng-vm shell]$a=3 [hupeng@hupeng-vm shell]$echo "$a * 1.5" | bc 4.5 [hupeng@hupeng-vm shell]$#其他参数可以置于要执行的具体操作之前,同时以分号作为定界符,通过stdin传给bc [hupeng@hupeng-vm shell]$echo "scale=1;2 / 3" | bc #scale用来指定精度(小数点后的位数) .6 [hupeng@hupeng-vm shell]$echo "scale=2;2 / 3" | bc .66 [hupeng@hupeng-vm shell]$echo "scale=3;2 / 3" | bc .666 [hupeng@hupeng-vm shell]$n=100 #10进制 [hupeng@hupeng-vm shell]$echo "obase=2;$n" | bc #转换为二进制输出 1100100 [hupeng@hupeng-vm shell]$n=1100100 [hupeng@hupeng-vm shell]$echo "obase=10;ibase=2;$n" | bc # 将二进制转化为10进制输出 100 [hupeng@hupeng-vm shell]$echo "sqrt(100)" | bc #求平方根 10 [hupeng@hupeng-vm shell]$echo "10 ^ 3" | bc #求幂 1000 [hupeng@hupeng-vm shell]$echo "sqrt(-1)" | bc #不支持复数 Runtime error (func=(main), adr=4): Square root of a negative number