欢迎来到李先生的博客

深山的鹿,不知归处;万般皆苦,只可自渡。
扩大
缩小

if条件里比较浮点数

晚上看会儿书,基础的东西,很多都不熟练,不得不佩服那些人真的很厉害,为啥会想到那些,我这傻脑袋是想不到,暂时......

 

比较3.3333与3

#!/bin/bash
var1=`echo "scale=4; 10/3" |bc`
echo "The test value is $var1"

if [ $var1 -gt 3 ] ;then
    echo "The result is larger than 3"
else
    echo "aa"
fi

 报错:

The test value is 3.3333
if4.sh: line 6: [: 3.3333: integer expression expected
aa

解决办法:

#!/bin/bash
var1=`echo "scale=4; 10/3" |bc`
echo "The test value is $var1"

echo `echo "$var1 > 3"|bc`

if [ `echo "$var1 > 3"|bc` -eq 1 ] ;then
    echo "The result is larger than 3"
else
    echo "aa"
fi

scale定义小数点后的位数;if条件里通过bc返回的值与1作比较,若等于1,说明是大于

如何在if [ condition ] 里比较浮点数,通过bc命令;bc的数值比较运算:

[root@yunovo shell]# echo "5>3" | bc
1
[root@yunovo shell]# echo "5>7" | bc
0

 

posted on 2016-11-28 19:56  Captain_Li  阅读(1713)  评论(0编辑  收藏  举报

导航