shell檔案比較運算子

2021-09-02 22:27:10 字數 1787 閱讀 3041

檔案比較運算子

-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 「myv

ar"]

−nst

ring

如果st

ring

長度非零

,則為真

[−n"

myvar" ] -n string 如果 string長度非零,則為真 [ -n "

myvar"

]−ns

trin

g如果s

trin

g長度非

零,則為

真[−n

"myvar」 ]

string1= string2 如果 string1與 string2相同,則為真 [ 「myv

ar"=

"one

twot

hree

"]st

ring

1!=s

trin

g2如果

stri

ng1與

stri

ng2不

同,則為

真[

"myvar" = "one two three" ] string1!= string2 如果 string1與 string2不同,則為真 [ "

myvar"

="on

etwo

thre

e"]s

trin

g1!=

stri

ng2如

果str

ing1

與str

ing2

不同,則

為真["

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 ]

shell檔案比較運算子

e filename 如果filename 存在,則為真 e var log syslog d filename 如果filename 為目錄,則為真 d tmp mydir f filename 如果filename 為常規檔案,則為真 f usr bin grep l filename 如果fi...

shell 比較運算子

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

Shell 檔案運算子

檔案運算子 描述 b file 檢測 file 是否為塊裝置檔案 c file 檢測 file 是否為字元裝置檔案 d file 檢測 file 是否為目錄 e file 檢測 file 是否存在 f file 檢測 file 是否存在為普通檔案 r file 檢測 file 是否可讀 s file...