shell-条件判断
语法
test 条件
可以使用
$?查看判断结果,0为true,1为false
[ 条件 ] 注意:条件前后有空格
条件非空即为true,[xxx]返回true,[ ]返回false
并且注意条件判断符号左右一点要空格,否则就是一个字符串了
常用判断条件
两个整数之间比较
| 判断条件 | 说明 |
|---|---|
| -eq | 等于(equal) |
| -ne | 不等于(not equal) |
| -lt | 小于(less than) |
| -le | 小于等于(less equal) |
| -gt | 大于(greater then) |
| -ge | 大于等于(greater equal) |
两个字符串之间比较
| 判断条件 | 说明 |
|---|---|
| = | 相等 |
| != | 不相等 |
按照文件权限进行判断
| 判断条件 | 说明 |
|---|---|
| -r | 有读的权限(read) |
| -w | 有写的权限(write) |
| -x | 有执行的权限(execute) |
按照文件类型进行判断
| 条件判断 | 说明 |
|---|---|
| -e | 文件存在(existence) |
| -f | 文件存在并且是一个常规的文件(file) |
| -d | 文件存在并且是一个目录(directory) |
多条件判断
- &&:前一条命令执行成功时,才执行后一条命令(逻辑与)
- ||:表示上一条命令执行失败后,才执行下一条命令(逻辑或)
可以实现类似与三元运算符的效果:
[ 1 -eq 1 ] && echo ok || echo no