shell的檔案比較運算子和字串比較運算子

2022-08-20 00:57:12 字數 989 閱讀 2467

一、檔案比較運算子 

1. -e filename 如果 filename存在,則為真 如: [ -e /var/log/syslog ] 

2. -d filename 如果 filename為目錄,則為真 如: [ -d /tmp/mydir ] 

3. -f filename 如果 filename為常規檔案,則為真 如: [ -f /usr/bin/grep ] 

5. -r filename 如果 filename可讀,則為真 如: [ -r /var/log/syslog ]

6. -w filename 如果 filename可寫,則為真 如: [ -w /var/mytmp.txt ]

7. -x filename 如果 filename可執行,則為真 如: [ -l /usr/bin/grep ]

8. filename1-nt filename2 如果 filename1比 filename2新,則為真 如: [ 

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

9. filename1-ot filename2 如果 filename1比 filename2舊,則為真 如: [ 

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

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

1. -z string  如果 string長度為零,則為真 如:  [ -z "$myvar" ]

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

3. string1= string2  如果 string1與 string2相同,則為真 如:  ["$myvar" = "one two three"]

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

shell檔案比較運算子

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

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 ...