test命令可用于:
文件属性的测试
字符串测试
算数测试
test命令语法如下所示:
test EXPRESSION
或者[EXPRESSION]
示例:
# test -d "$HOME"; echo $?
0
#["abc" != "def"]; echo $?
0
文件属性测试操作参考表(test)
操作符 描述
-e<file> | 如果<file>存在则为真 |
-f<file> | 如果<file>存在且是一个常规文件则为真 |
-d<file> | 如果<file>存在且是一个目录则为真 |
-c<file> | 如果<file>存在且是一个特殊字符文件则为真 |
-b<file> | 如果<file>存在且是一特殊块文件则为真 |
-p<file> | 如果<file>存在且是一个命名管道则为真 |
-S <file> | 如果<file>存在且是一个套接字文件则为真 |
-L <file> | 如果<file>存在且是一个符号链接则为真(与-h相同) |
-h <file> | 如果<file>存在且是一个符号链接则为真(与-L相同) |
-g <file> | 如果<file>存在且是设置了sgid位则为真 |
-u <file> | 如果<file>存在且是设置了suid位则为真 |
-r <file> | 如果<file>存在且是可读的则为真 |
-w <file> | 如果<file>存在且是可写的则为真 |
-x <file> | 如果<file>存在且是可执行的则为真 |
-s <file> | 如果<file>存在且是不为空的则为真 |
-t <file> | 如果文件描述符<fd>已打开且引用了一个终端则为真 |
<file1>-nt <file2> | 如果<file1>比 <file>新则为真(指mtime) |
<file1>-ot<file2> | 如果 <file> 比<file>旧则为真(指mtime) |
<file2>-ef<file1> | 如果<file1>有硬连接到<file2>则为真 |
实例1、检查命令文件是否存在,如果存在则打印找到此文件,否则打印没找到此文件。
# test -e /bin/cp && echo "The command $_ found."||echo "The command $_not found."
The command /bin/co found.
PS:上述语句中的"$_"表示前一个执行的命令中的最后一个参数。