test命令可在if-then语句中测试不同的条件。如果test命令成立,则其会退出并返回退出状态码0
- test命令的格式:test condition
默认不带condition时,则返回非0
- test可以测变量是否为空
- test命令和测试条件可以判断3类条件
- 数值比较,相关功能符为(-eq -ge -gt -le -lt -ne)
注意:该条件测试,bash shell只支持整数
- 字符串比较
x = y x和y是否相同
x != y x是否和y不同
x < y 和 x > y 比较大小
-n x 检查x的长度是否不为0
-z x 检查x的长度是否为0
要注意在比较测试中,此处比较方法是根据每个字符的Unicode编码值比较,而sort命令使用的是系统语言环境设置中定义的排列顺序(小写在大写之前)
- 文件比较
-d file 检查file是否存在且为目录
-e file 检查file是否存在
-f file 检查file是否存在且为文件
-r file 检查file是否存在且可读
-s file 检查file是否存在且非空
-w file 检查file是否存在且可写
-x file 检查file是否存在且可执行
-O file 检查file是否存在且属当前用户所有
-G file 检查file是否存在且默认组与当前用户相同
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧