- 基本语法
[ 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 OK
OK
[root@localhost ~]# [ condition ] && [ ] || echo notok OK
notok OK