利用这些运算符,您可以在程序中根据对文件类型的评估结果执行不同的操作:
-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(虽然这是通常返回的值),可能返回一个非零值。
文章来源于领测软件测试网 https://www.ltesting.net/