Linux脚本中带有小数点的数值比较大小

1shell

2express

3code

4io

5table

6test

7语法

8方法

9tab

10co

11

a=1.2

b=1.1

 

若是直接用

if [ $a -gt $b ];then

echo "$a > $b"

fi

或者

if [ $a > $b ];then

echo "$a > $b"

fi

都会提示语法错误
[: 1.2: integer expression expected
没办法直接对带有小数点的数进行对比

 

shell的 test 对于数值的判断都是基于整数的,没办法对带有小数的数值直接进行对比。

咱们能够经过其它变通的方法来进行对比:

一、[[   ]]

1

[[ $a > $b ]] &&  echo "$a > $b"

二、expr方法

比较妙的方法 expr $a \> $b
根据上面返回值来进行判断,等于0表示$a < $b,或者$a > $b

1

2

3

4

5

6

7

a=1.2

b=1.1

if [ `expr $a \> $b` -eq 0 ];then

echo "$a < $b"

else

echo "$a > $b"

fi

注意:上面两种方法若是位数不一致,就没办法正常对比。

 

三、bc计算(推荐使用)

相关文章
相关标签/搜索