1.在shell if判断中,需使用bc命令对多位小数进行判断,用-gt、-eq、-le…或<、>、=、expr命令无法对多位小数进行判断
[Devin@Devin2 ~]$ if [ $(echo "120.254 > 111.91" | bc) = 1 ];then
> echo True
> else
> echo False
> fi
True
判断正确
2.用-gt、-eq、-le…或<、>、=无法对多位小数进行判断
例如:
[Devin@Devin2 ~]$ if [ 120.254 -gt 111.91 ]
> then
> echo 1
> else
> echo 0
> fi
-bash: [: 120.254: integer expression expected
0
判断错误
[Devin@Devin2 ~]$ if [ 120.254 < 111.91 ]
> then
> echo 1
> else
> echo 0
> fi
1
判断错误
3.使用四则运算命令expr亦无法判断
说明:
用expr命令进行大小判断时,真输出1,假输出0。
expr 命令书写上的规则:
请用空格隔开每个项。
请将反斜杠(\)放在 Shell 特殊字符前面。
请对包含空格和其他特殊字符的字符串用引号括起来。
[Devin@Devin2 ~]$ echo ` expr 111.91 \> 95 `
0
判断错误
[Devin@Devin2 ~]$ a=111.91
[Devin@Devin2 ~]$ b=95
[Devin@Devin2 ~]$ if [ `expr $a \> $b` -eq 1 ];then
> echo $a is bigger
> else
> echo $b is bigger
> fi
95 is bigger
判断错误