在shell中计算

shell计算的几种方法

  • 使用 expr 计算

sum=`expr a+b+c`
  • 使用 let 计算

let sum=a+b+c
  • 使用 bc 计算

echo "7+3*2" | bc
  • 整数计算

sum=$((32+79))

浮点数计算

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

参考

Last updated