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計算(推薦使用)

相關文章
相關標籤/搜索