test命令
test 命令最短的定义可能是评估一个表达式;如果条件为真,则返回一个 0 值。如果表达式不为真,则返回一个大于 0 的值 — 也可以将其称为假值。检查最后所执行命令的状态的最简便方法是使用 $? 值
test 文件运算符
利用这些运算符,您可以在程序中根据对文件类型的评估结果执行不同的操作:
- -b file 如果文件为一个块特殊文件,则为真
- -c file 如果文件为一个字符特殊文件,则为真
- -d file 如果文件为一个目录,则为真
- -e file 如果文件存在,则为真
- -f file 如果文件为一个普通文件,则为真
- -g file 如果设置了文件的 SGID 位,则为真
- -G file 如果文件存在且归该组所有,则为真
- -k file 如果设置了文件的粘着位,则为真
- -O file 如果文件存在并且归该用户所有,则为真
- -p file 如果文件为一个命名管道,则为真
- -r file 如果文件可读,则为真
- -s file 如果文件的长度不为零,则为真
- -S file 如果文件为一个套接字特殊文件,则为真
- -t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真
- -u file 如果设置了文件的 SUID 位,则为真
- -w file 如果文件可写,则为真
- -x file 如果文件可执行,则为真
除了使用 test 外,您还可以用方括号 [ ] 将命令括住来向 shell 发出同样的命令 — 如下所示:
$ [ -w evan ]
$ echo $?
0