Linux之shell比較子 運算子 描述 樣本檔案比較子-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 ] 測試命令 test命令用於檢查某個條件是否成立,它可以進行數值、字元和檔案3個方面的測試,其測試符和相應的功能分別如下。 (1)數值測試: -eq 等於則為真。 -ne 不等於則為真。 -gt 大於則為真。 -ge 大於等於則為真。 -lt 小於則為真。 -le 小於等於則為真。 (2)字串測試: = 等於則為真。 != 不相等則為真。 -z字串 字串長度偽則為真。 -n字串 字串長度不偽則為真。 (3)檔案測試: -e檔案名稱 如果檔案存在則為真。 -r檔案名稱 如果檔案存在且可讀則為真。 -w檔案名稱 如果檔案存在且可寫則為真。 -x檔案名稱 如果檔案存在且可執行則為真。 -s檔案名稱 如果檔案存在且至少有一個字元則為真。 -z檔案名稱 檔案存在且長度為0返回真。 -d檔案名稱 如果檔案存在且為目錄則為真。 -f檔案名稱 如果檔案存在且為普通檔案則為真。 -c檔案名稱 如果檔案存在且為字元型特殊檔案則為真。 -b檔案名稱 如果檔案存在且為塊特殊檔案則為真 -o檔案名稱 如果檔案屬於使用者本人返回真。