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 : [: 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 ] ;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

[root@yunovo shell]# echo "5>7" | bc
上一篇:Flask10 登录模块、表单框架、表单渲染、表单验证、bookie、请求之前钩子、g对象、编写装饰器


下一篇:tomcat中的线程问题