shell计算的几种方法
- 使用
expr
计算
sum=`expr a+b+c`
- 使用
let
计算
let sum=a+b+c
- 使用
bc
计算
echo "7+3*2" | bc
浮点数计算
bc
支持浮点数计算,但是我发现如果被除数是整数,则输出结果也是整数。对于 bc
可以使用 scale
定义精度
echo "scale=3; 1.55 * 1.55 " | bc -l
scale参数指定小数点后的保留位数
bc显示小数点前的0
在使用 bc
做计算的时候,会发现如果小数点前面是0的时候会不显示,解决的方法可以采用
res1=$(printf "%.2f" `echo "scale=2;1/3"|bc`)
printf
打印函数可以格式化输出小数点之前的0。
更为精确的方法是采用 awk
v1=$(echo 1 3 | awk '{ printf "%0.2f\n" ,$1/$2}')