比較bash和perl的比較運算子(糾結)

2021-05-26 16:11:53 字數 1595 閱讀 5120

bash 整數比較

-eq 等於,如:if [ "$a" -eq "$b" ]

-ne 不等於,如:if [ "$a" -ne "$b" ]

-gt 大於,如:if [ "$a" -gt "$b" ]

-ge 大於等於,如:if [ "$a" -ge "$b" ]

-lt 小於,如:if [ "$a" -lt "$b" ]

-le 小於等於,如:if [ "$a" -le "$b" ]

< 小於(需要雙括號),如:(("$a" < "$b"))

<= 小於等於(需要雙括號),如:(("$a" <= "$b"))

> 大於(需要雙括號),如:(("$a" > "$b"))

>= 大於等於(需要雙括號),如:(("$a" >= "$b"))

bash字串比較

= 等於,如:if [ "$a" = "$b" ]

== 等於,如:if [ "$a" == "$b" ],與=等價

注意:==的功能在和中的行為是不同的,如下:

1 [[ $a == z* ]] # 如果$a 以"z"開頭(模式匹配)那麼將為true

2 [[ $a == "z*" ]] # 如果$a 等於z*(字元匹配),那麼結果為true

34 [ $a == z* ] # file globbing 和word splitting 將會發生

5 [ "$a" == "z*" ] # 如果$a 等於z*(字元匹配),那麼結果為true

!= 不等於,如:if [ "$a" != "$b" ]

這個操作符將在結構中使用模式匹配.

< 小於,在ascii 字母順序下.如:

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

注意:在結構中"<"需要被轉義.

> 大於,在ascii 字母順序下.如:

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

注意:在結構中">"需要被轉義.

具體參考 example 26-11 來檢視這個操作符應用的例子.

-z 字串為"null".就是長度為0.

-n 字串不為"null"

注意:使用-n 在結構中測試必須要用""把變數引起來.使用乙個未被""的字串來使用! -z

或者就是未用""引用的字串本身,放到結構中(見example 7-6)雖然一般情況下可

以工作,但這是不安全的.習慣於使用""來測試字串是一種好習慣.[1]

perl整數比較操作符

< 小於

> 大於

== 等於

<= 小於等於

>= 大於等於

!= 不等於

<=> 比較,返回 1, 0, or -1

perl字串比較操作符

lt 小於  

gt 大於  

eq 等於  

le 小於等於  

ge 大於等於  

ne 不等於  

bash的整數比較既可以用字元運算子也可以用符號運算子

bash的字串比較子能用符號運算子

perl的整數比較智慧型用

萬惡的腳步語言

比較bash和perl的比較運算子(糾結)

bash 整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於 需要雙括號 如 a b 小於等於 需要雙括號 如...

bash的測試和比較

比較字串 string1 string2 等價於 string1 string2 比較整數 num1 eq num2 等價於 num1 num2 變數值不為空,且變數值中不包含空格的情況下,變數可不加雙引號,當然加了雙引號也可以 變數值為空或變數值中包含空格的情況下,變數一定要加雙引號 或變數沒有申...

Bash 測試和比較函式

您是否為 bash shell 中大量的測試和比較選項而困惑呢?這個技巧可以幫助您解密不同型別的檔案 算術和字串測試,這樣您就能夠知道什麼時候使用test 或if then else了。bash shell 在當今的許多 linux 和 unix 系統上都可使用,是 linux 上常見的預設 she...