1. 程式人生 > >shell腳本編程學習筆記-整數二次元比較操作符

shell腳本編程學習筆記-整數二次元比較操作符

linux shell

1.1 下表為常用二次元比較操作符

技術分享圖片

我們也可以通過man test查看

技術分享圖片

提示

(1) “<”符號是小於的意思,if[[ “$a”<”$b” ]], if[[ “$a”\<”$b” ]]。在單括號中需要轉義,因為在shell也用<和>做重定向。

(2) “>”符號是大於的意思,if[[ “$a”> “$b” ]], if[[ “$a” \> “$b” ]]。在單括號中需要轉義,因為在shell也用<和>重定向。

(3) “=”符號第等於的意思,if[[ “$a”=”$b” ]],if[[ “$a”=”$b”]]。在單[]中不需要轉義。

特別提示:

“=”和”!=”在[]中使用不需要轉義,包含”>”和”<”的符號在[]號中使用需要轉義,對於數字不轉義的結果未必會報錯,但是結果可能不會對。

範例1:二次數字比較

技術分享圖片

技術分享圖片

實際測試結果結論:

(1)整數加雙引號也是對的。

(2)[[ ]]用-eq等的寫法也是對的,[[ ]]用>寫法也可能不對,只比較第一位,邏輯結果不對。

技術分享圖片

(3)[ ]用>號的寫法語法報錯,邏輯結果不對。

工作場景:推薦[ ]的-eq的用法。

小結:整數比較推薦用法

[ $num –eq $num2 ] 註意空格,和比較符號。

(($num1>$num2)) 無需空格,常規數學比較符號。

技術分享圖片

整數比較可以加雙引號也可以不加。
系統腳本例子grep –w “-eq”/etc/init.d/nfs

技術分享圖片

shell腳本編程學習筆記-整數二次元比較操作符