test 命令的格式非常简单
test condition
condition 是test命令要测试的一系列参数和值。当用在if-then 语句中时,test 命令看起来是这样的
if test condition
then
commands
f i
如果不写test 命令的condition 部分,它会以非零的退出状态码退出,并执行else 语句块
bash shell 提供了另一种条件测试方法,无需在if -then 语句中声明test
if [condition]
then
commands
f i
方括号定义了测试条件,注意第一个方括号之后和第二个方括号之前必须加上一个空格,否则就会报错
test 命令可以判断三类条件:
- 数值比较
- 字符串比较
- 文件比较
数值比较
比较 | 描述 |
n1 -eq n2 | 检查n1 与n2 是否相等 |
n1 -ge n2 | 检查n1是否大于或等于n2 |
n1 -gt n2 | 检查n1是否大于 n2 |
n1 -le n2 | 检查n1 是否小于等于n2 |
n1 -lt n2 | 检查n1 是否小于n2 |
n1 -ne n2 | 检查n1 是否不等于n2 |
字符串比较
比较 | 描述 |
str1=str2 | 检查str1是否与str2 相等 |
str1!=str2 | 检查str1是否和str2 不同 |
str1<str2 | 检查str1是否比str2小 |
str1>str2 | 检查str1是否比str2大 |
-n str1 | 检查str1 的长度是否非0 |
-z str1 | 检查str1 的长度是否为0 |