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