利用這些運算符,您可以在程序中根據對文件類型的評估結果執行不同的操作:
-bfile 如果文件為一個塊特殊文件,則為真 -cfile 如果文件為一個字符特殊文件,則為真 -dfile 如果文件為一個目錄,則為真 -efile 如果文件存在,則為真 -ffile 如果文件為一個普通文件,則為真 -gfile 如果設置了文件的 SGID 位,則為真 -Gfile 如果文件存在且歸該組所有,則為真 -kfile 如果設置了文件的粘著位,則為真 -Ofile 如果文件存在并且歸該用戶所有,則為真 -pfile 如果文件為一個命名管道,則為真 -rfile 如果文件可讀,則為真 -sfile 如果文件的長度不為零,則為真 -Sfile 如果文件為一個套接字特殊文件,則為真 -tfd 如果 fd 是一個與終端相連的打開的文件描述符(fd 默認為 1),則為真 -ufile 如果設置了文件的 SUID 位,則為真 -wfile 如果文件可寫,則為真 -xfile 如果文件可執行,則為真
以下示例顯示了此簡單操作的運行情況:
$ ls -ltotal 33drwxr-xr-w 2 root root 1024 Dec 5 05:05 LST-rw-rw-rw- 1 emmett users 27360 Feb 6 07:30 evan-rwsrwsrwx 1 root root 152 Feb 6 07:32 hannahdrwxr-xr-x 2 emmett users 1024 Feb 6 07:31 karen-rw------- 1 emmett users 152 Feb 6 07:29 kristin-rw-r--r-- 1 emmett users 152 Feb 6 07:29 spencer$$ test -r evan$ echo $?0$ test -r walter$ echo $?1$
由于第一次評估為真 — 文件存在且可讀 — 返回值為真,或 0。由于第二次評估的文件不存在,該值為假,返回值不為零。將值指定為零或非零很重要,因為在失敗時不會始終返回 1(雖然這是通常返回的值),可能返回一個非零值。
文章來源于領測軟件測試網 http://www.kjueaiud.com/