shell腳本編程學習筆記-整數二次元比較操作符
阿新 • • 發佈:2018-03-08
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腳本編程學習筆記-整數二次元比較操作符