shell中的浮点数比较

目录

Shell 的 [ ] 整数比较不支持浮点数。例如:

mya=5.7
if [ $mya -le 4 ]; then echo "ok"; else echo "fail"; fi

报错:integer expression expected

解决方案:使用 bc 命令

bc 是计算器工具,支持浮点运算。用 bc 的结果判断:

mya=5.7
if [ $(echo "$mya <= 4" | bc) = 1 ]; then
  echo "ok"
else
  echo "fail"
fi

bc 在浮点数比较时返回 1(真)或 0(假),适合用在条件判断中。

提取浮点数示例

从 df 命令输出中提取磁盘大小(如 5.7G):

mya=`df -h | grep xvda2 | awk '{print $2}' | sed 's/G//'`
# 结果:5.7

然后使用上述 bc 方法进行比较。

#shell-scripting