max=0.1 min=0.01 if [ "$max" -gt "$min" ] then echo "YES" else echo "NO" fi
max=0.1 min=0.01 if [ `echo "$max > $min" | bc` -eq 1 ] then echo "YES" else echo "NO" fi
[root@hnanet ~]# max=0.1 [root@hnanet ~]# min=0.01 [root@hnanet ~]# echo "$max > $min" | bc 1 [root@hnanet ~]# echo "$max < $min" | bc 0 [root@hnanet ~]# echo "$max < $min" 0.1 < 0.01
也可參考如下
下面是一個常規寫法的示例: if [ 1.1 -gt 1 ];then echo "OK" fi 直接會拋出如下異常: line 3: [: 1.1: integer expression expected 正確的寫法如下: if [ `echo "1.1 > 1" | bc` -eq 1 ];then echo "OK" fi
小數比較
前言
用於數值比較的無非大於、小於、等於、大於等於、小於等於這幾個。
比較格式: [ 數值1 比較符 數值2 ] 注意左邊的括號與數值1之間有一個空格,同樣,數值2和右邊的括號之間也有空格。
數值比較運算符對應下面幾個:
-eq 判斷相等,相等返回true,否則返回false
-ne 判斷是否不相等,不相等返回true,否則返回false
-gt 判斷左邊是否大於右邊的值,大於則返回true,否則返回false
-lt 判斷左邊是否小於右邊的值,小於則返回true,否則返回false
-ge 判斷左邊是否大於或等於右邊的值,大於則返回true,否則返回false
-le 判斷左邊是否小於右邊的值,小於則返回true,否則返回false
小數的比較
1.shell中 可以用 bc 對小數進行運算
#echo 5.5+1.1 | bc
6.6
2.使用,awk判斷小數點后的位數
num=6.6666;echo $num | awk 'BEGIN{FS="."}{printlength($2)}'
1
3.直接使用awk比較大小
awk -v num1=6.6 -v num2=5.5'BEGIN{print(num1>num2)?"0":"1"}'
1
如果num1>num2打印輸出0,否則輸出1
4.使用expr,返回1表示a>
a>b, 0表示a<
a<b
a=6.6 b=5.5;expr $a > $b
1
5.使用br
echo "6.6>5.5" |br
1
linux shell 中小數進行比較
if [ `expr $a \> $b` -eq 0 ];then
echo $b is bigger
else
echo $a is bigger
fi
原文鏈接:https://blog.csdn.net/david__peng/article/details/82980288