shell 中浮点数和整数的比较

By | 2017年8月9日

在shell脚本中,无法对浮点数进行比较,如:
max=0.1
min=0.01
if [ “$max” -gt “$min” ]
then
echo “YES”
else
echo “NO”
fi
这样的比较,运行后得到错误:
line 4: [: 0.1: integer expression expected
因为bc和awk都支持浮点数,可以使用bc进行处理:
max=0.1
min=0.01
if [ `echo “$max > $min” | bc` -eq 1 ]
then
echo “YES”
else
echo “NO”
fi
也可以写成if [ $(echo “$max < $min”|bc) -eq 1 ]

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注