條件運算式是由[[複合命令以及test和[內建命令來測試檔案屬性,進行字串和算術比較使用。運算式從以下一元或二進位初選形成。如果有任何檔案參數初選之一,是格式為/ dev/ FD/ N,則檔案描述符n進行檢查。如果檔案參數初選之一,/dev/stdin, /dev/stdout, or /dev/stderr,檔案描述符0,1,w2
當與[,<和>運算子字典順序排序使用當前語言環境中使用。 ASCII已排序的測試命令排序。
-a file
如果檔案存在則為真。
-b file
若果檔案存在並且是一塊特殊檔案描述符
-c file
如果檔案存在並且是字元裝置則為真。
-d file
如果檔案存在並且為檔案夾為真。
-e file
如果檔案存在則真。
-f file
如果檔案存在且是一個普通檔案為。
-g file
如果檔案存在並且被設定為組id則為真
-h file
如果檔案存在並且為符號連結則為真。
-k file
真如果檔案存在和它的“粘性’位。
-p file
如果檔案存在並且為管道則為真。
-r file
如果檔案存在並且為可讀檔案則為真。
-s file
如果檔案存在並且檔案大小不為0則為真。
-t fd
如果檔案描述符fd是開啟的,指的是一個終端則為真。
-u file
如果檔案存在並且欸被設為使用者id為,則為真。
-w file
如果檔案存在並且為可寫則為真。
-x file
如果檔案存在並且為可執行則為真。
-G file
如果檔案存在且被有效組ID所擁有,則為真。
-L file
如果檔案存在並且為符號連結則為真。
-N file
如果檔案存在,並且已被修改,因為這是最後一次讀取,則為真。
-O file
如果檔案存在且被有效使用者ID所擁有則真。
-S file
如果檔案存在並且為通訊端則為真。
file1 -ef file2
如果file1和file2指的是相同的裝置和inode號。
file1 -nt file2
file1比file2新,或者file1存在file2不存在則為真。
file1 -ot file2
如果file1比file2舊,或file2存在flie1不存在。
-o optname
如果參數是有效,則為真。
-v varname
如果變數被設定則為真。
-R varname
如果變數被設定並且為名字提及。
-z string
如果變數長度為0則為真。
string
-n string
字元長度部位0則為真。
string1 == string2
string1 = string2
如果string1等於string2則為真
string1 != string2
如果string1 不等於string2則為真。
string1 < string2
如果string1排列順序比string2排列順序靠前則為真
string1 > string2
如果string1排列順序比string2排序次序靠後則為真。
arg1 OP arg2
OP 為-eq, -ne, -lt, -le, -gt, or -ge其中一個。 如果Arg1等於,不等於,小於,小於或這些算術二元運算子返回true
等於,大於,或者大於或等於ARG2,分別。 ARG1和ARG2可以是正或負整數。