shell脚本中通常使用expr和let进行整数运算,使用bc进行浮点数运算
expr:
- #!/bin/sh
- i=10
- j=20
- k=3
- # 执行算数运算
- echo "i:$i;j:$j;k:$k"
- res1=`expr $i + $j + $k`
- res2=`expr $j - $i - $k`
- res3=`expr $i * $j * $k`
- res4=`expr $i * $j / $k`
- # 输出运算结果
- echo "i+j+k=$res1"
- echo "j-i-k=$res2"
- echo "i*j*k=$res3"
- echo "i*j/k=$res4"
expr中乘为*;除法结果会去除小数部分
let:
- #!/bin/sh
- i=10
- j=20
- k=3
- # 执行算数运算
- let res1=$i+$j+$k
- let res2=$j-$i-$k
- let res3=$i*$j*$k
- let res4=$i*$j/$k
- # 输出运算结果
- echo "i+j+k=$res1"
- echo "j-i-k=$res2"
- echo "i*j*k=$res3"
- echo "i*j/k=$res4"
同样除法结果会去除小数部分
bc:
res5=`echo "scale=5;$i*$j/$k"|bc`
echo "bc:i*j/k=$res5"
scale限制小数点的位数, | 为管道,将算式通过管道发送给bc计算,再将结果赋值给res5