条件判断——基本语法
[ condition ](注意 condition 前后要有空格) #非空返回 true,可使用 $? 验证(0 为 true,>1 为 false)
应用实例
[ abc ] 返回 true
[] 返回 false
[condition] && echo OK || echo notok 条件满足,执行OK,不满足,执行 notok
常用判断条件
1)两个整数的比较
= 字符串比较
-lt 小于(less than)
-le 小于等于(less equal)
-eq 等于(equal)
-gt 大于(greater than)
-ge 大于等于(greater equal)
-ne 不等于(not equal)
注:如果是字符串之间的比较 ,用等号“=”判断相等;用“!=”判断不等。
2)按照文件权限进行判断
-r 有读的权限(read) [ -r 文件 ]
-w 有写的权限(write)
-x 有执行的权限(execute)
3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件(file)
-e 文件存在(existence)
-d 文件存在并是一个目录(directory)
应用实例
案例 1:“ok"是否等于"ok”
判断语句:
[niujifei@njf ~]$ [ "OK100" = "OK" ]
[niujifei@njf ~]$ echo $?
1
案例 2:23 是否大于等于 22
判断语句:
[niujifei@njf ~]$ [ 23 -ge 22 ]
[niujifei@njf ~]$ echo $?
0
案例3:helloworld.sh 是否具有写权限
[niujifei@njf ~]$ [ -w helloworld.sh ]
[niujifei@njf ~]$ echo $?
1
案例4:/root/install.log 目录中的文件是否存在
判断语句:
[niujifei@njf ~]$ [ -e /root/install.log ]
[niujifei@njf ~]$ echo $?
1
案例5:多条件判断(&& 表示前一条命令执行成功时,才执行后一条命令,|| 表示上一条命令执行失败后,才执行下一条命令)
[niujifei@njf ~]$ [ abc ] && echo OK || echo notOK
OK
[niujifei@njf ~]$ [ ] && echo OK || echo notOK
notOK