具有浮点值的变量减法不起作用

时间:2019-07-16 15:06:29

标签: bash solaris

我正在下面作为solaris 10上bash脚本的一部分执行。

MEM_USED_PC=`prstat -Z 1 1 | grep -i sz | awk '{print $5}' | sed 's/%//'`
MEM_TOTAL_PC=100

MEM_FREE_PC=$(($MEM_TOTAL_PC-$MEM_USED_PC))

但是echo $MEM_FREE_PC给出以下错误:

100-6.5: syntax error: invalid arithmetic operator (error token is ".5")

可能是什么问题?

2 个答案:

答案 0 :(得分:1)

由于bash不支持浮点,因此需要awk之类的东西来计算结果:

ind2

答案 1 :(得分:1)

您可以使用计算器CLI,bc

MEM_FREE_PC=$(echo "$MEM_TOTAL_PC - $MEM_USED_PC" | bc)
echo $MEM_FREE_PC