Linux Shell test命令

test 命令是一个常用于 shell 脚本中的命令,用于检查文件或字符串的条件是否成立。

该命令的语法格式为:

test EXPRESSION

或者使用 [] 来包围表达式:

[ EXPRESSION ]

EXPRESSION 由条件表达式和逻辑操作符组成,表达式的结果为真时,该命令返回 0;结果为假时,返回 1。

下面是一些常用的测试条件:

文件测试条件

-e FILE:检查文件是否存在
-f FILE:检查文件是否是一个普通文件
-d FILE:检查文件是否是一个目录
-r FILE:检查文件是否可读
-w FILE:检查文件是否可写
-x FILE:检查文件是否可执行
-s FILE:检查文件是否不为空(大小不为零)
-h FILE:检查文件是否是一个符号链接
-p FILE:检查文件是否是一个命名管道(FIFO)
-L FILE:检查文件是否是一个符号链接
-S FILE:检查文件是否是一个套接字文件
-c FILE:检查文件是否是一个字符设备
-b FILE:检查文件是否是一个块设备
-t FD:检查文件描述符 FD 是否是一个终端
字符串测试条件

-z STRING:检查字符串是否为空
-n STRING:检查字符串是否非空
STRING1 = STRING2:检查字符串是否相等
STRING1 != STRING2:检查字符串是否不相等
整数测试条件

INT1 -eq INT2:检查整数 INT1 是否等于 INT2
INT1 -ne INT2:检查整数 INT1 是否不等于 INT2
INT1 -gt INT2:检查整数 INT1 是否大于 INT2
INT1 -ge INT2:检查整数 INT1 是否大于或等于 INT2
INT1 -lt INT2:检查整数 INT1 是否小于 INT2
INT1 -le INT2:检查整数 INT1 是否小于或等于 INT2
例如,要检查一个文件是否存在,可以使用以下命令:

test -e file.txt

或者使用方括号来包围表达式:

[ -e file.txt ]

如果 file.txt 存在,命令返回 0,否则返回 1。