Shell中的条件判断
1.基本语法
[ condition ] (注意condition 前后要有空格)
条件非空即为true,[ hyh ] 返回 true, [] 返回false。
2.常用判断条件
(1)两个整数之间的比较
= 字符串比较
-lt(less than) 小于 <
-eq(equal) 等于 =
-le(less equal) 小于等于 <=
-gt(greater than) 大于 >
-ge(greater equal) 大于等于 >=
-ne(not equal) 不等于 !=
[hyh@localhost ~]$ [ 21 -lt 22 ]
[hyh@localhost ~]$ echo $?
0
(2)按照文件权限进行判断
-r (read) 有读的权限
-w (write) 有写的权限
-x (execute) 有执行的权限
[root@localhost myshells]# [ -w var.sh ]
[root@localhost myshells]# echo $?
0
(3)按照文件类型进行判断
-f(file)文件存在并且是一个常规的文件
-d(directory) 文件存在并且是一个目录
-e(existence) 文件存在
-l(link) 文件存在且是一个链接
-s 文件存在且不为空
[root@localhost myshells]# [ -d /opt/myshells/ ]
[root@localhost myshells]# echo $?
0
多条件判断
(&&表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
[hyh@localhost ~]$ [ con ] && echo OK || echo Not OK
OK
[hyh@localhost ~]$ [ con ] && [ ] || echo NOT OK
NOT OK