bash 比較運算子

2021-04-20 00:26:06 字數 1544 閱讀 5013

運算子

描述

示例

檔案比較運算子

-e filename

如果 filename 存在,則為真

[ -e /var/log/syslog ]

-d filename

如果 filename 為目錄,則為真

[ -d /tmp/mydir ]

-f filename

如果 filename 為常規檔案,則為真

[ -f /usr/bin/grep ]

-l filename

如果 filename 為符號鏈結,則為真

[ -l /usr/bin/grep ]

-r filename

如果 filename 可讀,則為真

[ -r /var/log/syslog ]

-w filename

如果 filename 可寫,則為真

[ -w /var/mytmp.txt ]

-x filename

如果 filename 可執行,則為真

[ -l /usr/bin/grep ]

filename1 -nt filename2

如果 filename1 比 filename2 新,則為真

[ /tmp/install/etc/services -nt /etc/services ]

filename1 -ot filename2

如果 filename1 比 filename2 舊,則為真

[ /boot/bzimage -ot arch/i386/boot/bzimage ]

字串比較運算子(請注意引號的使用,這是防止空格擾亂**的好方法)

-z string

如果 string 長度為零,則為真

[ -z "$myvar" ]

-n string

如果 string 長度非零,則為真

[ -n "$myvar" ]

string1 = string2

如果 string1 與 string2 相同,則為真

[ "$myvar" = "one two three" ]

string1 != string2

如果 string1 與 string2 不同,則為真

[ "$myvar" != "one two three" ]

算術比較運算子

num1 -eq num2

等於[ 3 -eq $mynum ]

num1 -ne num2

不等於[ 3 -ne $mynum ]

num1 -lt num2

小於[ 3 -lt $mynum ]

num1 -le num2

小於或等於

[ 3 -le $mynum ]

num1 -gt num2

大於[ 3 -gt $mynum ]

num1 -ge num2

大於或等於

[ 3 -ge $mynum ]

bash 比較運算子

bash 比較運算子 運算子 描述 示例 檔案比較運算子 e filename 如果 filename 存在,則為真 e var log syslog d filename 如果 filename 為目錄,則為真 d tmp mydir f filename 如果 filename 為常規檔案,則為...

比較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和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 小於等於 需要雙括號 如...