- 基本语法
[ condition ] ( 注意conition前后要有空格 )
注意:条件非空即为true, [ abes ] 返回true, [] 返回 false。
- 常用判断条件
(1)两个整数比较
| = 字符串比较 | |
|---|---|
| -lt 小于(less than) | -le 小于等于(less equal) |
| -eq 等于(equal) | -ne 不等于(not equal) |
| -gt 大于(greater than) | -ge 大于等于(greater equal) |
(2)按照文件按权限进行判断
| -r 有读的权限(read) |
|---|
| -w 有写的权限 |
| -x 有执行的权限 |
(3)按照文件类型进行判断
| -f 文件存在并且是一个常规的文件(file) |
|---|
| -e 文件存在(existence) |
| -d 文件存在并且是一个目录(directory) |
- 案例实操
(1) 100 是否大于等于 101
[root@localhost ~]# [ 100 -ge 101 ][root@localhost ~]# echo $?1
(2) 判断当前用户是否对 /etc/profile 文件有写权限
[root@localhost ~]# [ -w /etc/profile ][root@localhost ~]# echo $?0
(3) 判断文件是否存在
# 判断/etc/hosts 文件是否存在[root@localhost ~]# [ -e /etc/hosts ][root@localhost ~]# echo $?0
(4) 多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
[root@localhost ~]# [ condition ] && echo OK || echo notok OKOK[root@localhost ~]# [ condition ] && [ ] || echo notok OKnotok OK
