在bash脚本里面作浮点数比较
冷胜魁(Seaquester)
lengshengkui@gmail.com
2008-9-16
bash本身并不支持浮点数,它将浮点数当成一个字符串来处理。由于某种原因,需要在脚本里面比较两个浮点数,遇到了一些麻烦:
#!/bin/sh
a=14.23
b=9.12
if [[ $a < $b ]] ; then
echo "a < b"
else
echo "a > b"
fi
上面的脚本正常情况下应该显示 a>b,但是实际上却显示a
浮点数的比较(运算)应该使用 bc 才可以得到正确的结果,如下:
#!/bin/sh
a=14.23
b=9.12
c=$(echo "$a>$b"|bc) #当 a>b时,c=1;否则,c=0
if [[ $c -eq 0 ]] ; then
echo "a < b"
else
echo "a > b"
fi
bc的用法很多,详细的说明参考man bc。
阅读(3386) | 评论(0) | 转发(0) |