十三、条件判断语句 test命令(shell [])
1、test 是 Shell 内置命令,用来检测某个条件是否成立。
语法1:test expression 用于判断表达式是否成立,成立返回0,不成立则返回其他数字。
test 命令也可以简写为[]
,它的用法为:
语法2:[ expression ]
[ ] 内非空返回true,可使用$?验证(0为true,1为false)
注意[]
和expression
之间的空格,这两个空格是必须的,否则会导致语法错误。[]
的写法更加简洁,比 test 使用频率高。
n=1 while [ $n -lt 10 ] 等价 while test $n -lt 10
2、常用条件判断
1)文件测试
语法:[ 操作符 文件或者目录]
操作符:
- -d:用于测试是否是目录
- -e:测试目录或文件是否存在
- -f:测试是不是文件
- -r:测试当前的用户是否有读的权限
- -w:测试当前用户是否有写的权限
- -x:测试当前用户是否具有可执行权限
- -L:测试是否为符号链接
2)数值比较
语法:[ 整数1 操作符 整数2 ]
操作符:
- -eq:等于
- -ne:不等于
- -gt:大于
- -lt:小于
- -le:小于等于
- -ge:大于等于
3)字符串比较
语法:[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
[ -z 字符串 ]
操作符:
- =:字符串内容相同
- !=:字符串内容不同
- -z:字符串内容为空
4)逻辑判断
语法:[ 表达式1 ] 操作符 [ 表达式2 ]
命令1 操作符 命令2
操作符:
- -a或&&:逻辑与,“且”的意思(两边需同时成立)
- -o或||:逻辑或,“或”的意思(如果第一个条件满足,则不需要看第二个条件,直接跳过,如果第一个条件失败,则查看第二条)
- !:逻辑否