bash 比較運算子
運算子
描述
示例
檔案比較運算子
-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 比較運算子
運算子 描述 示例 檔案比較運算子 e filename 如果 filename 存在,則為真 e var log syslog d filename 如果 filename 為目錄,則為真 d tmp mydir f filename 如果 filename 為常規檔案,則為真 f usr bin...
比較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 小於等於 需要雙括號 如...