Chinaunix首页 | 论坛 | 博客
  • 博客访问: 597216
  • 博文数量: 50
  • 博客积分: 4764
  • 博客等级: 上校
  • 技术积分: 597
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-18 09:00
个人简介

资深IT码农,擅长Linux、C/C++、bash

文章分类

全部博文(50)

文章存档

2015年(17)

2014年(2)

2011年(7)

2010年(4)

2009年(20)

分类: LINUX

2009-06-01 09:46:50

在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) |
给主人留下些什么吧!~~