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

参考

linux的test命令(转)