shell脚本中的小数运算
shell脚本中直接进行小数的加减乘除操作,会报错integer expression expected。
可以用2种方式解决,借助bc计算器,但是容器方式运行时,容器中可能没有安装bc,就需要引入bc,重新制作镜像。
也可以用第2种方式awk。
a=3.2 b=1.5 c=`echo "scale=3;$a + $b"|bc`
scale=3;表示小数的位数为3位
c=`awk -v x=2.45 -v y=3.123 'BEGIN{printf "%.2f\n",x*y}'`
%.2f表示小数的位数为2位
整数的运算
n1=`expr $x + $y` n2=`expr $x - $y` n3=`expr $x \* $y` #使用expr时 符号* 需要转义 n4=`expr $x / $y` n5=`expr $x % $y`
((n1=$x+$y)) 等价于 n1=`expr $x + $y`
((n1=$x+$y)) ((n2=$x-$y)) ((n3=$x*$y)) ((n4=$x/$y)) ((n5=$x%$y))