【shell】条件判断式

时间:2022-10-16 14:38:29

条件判断式的表示格式:

【shell】条件判断式

文件判断式:

【shell】条件判断式

[root@andon ~]# [ -e /root/1 ] && echo yes || echo no  #注意[]里面的空格,第一个命令为真打印yes,否则打印no
yes
[root@andon ~]# [ -f /root/1 ] && echo yes || echo no
yes
[root@andon ~]# [ -d /root/1 ] && echo yes || echo no
no

文件权限判断式:

【shell】条件判断式

[root@andon ~]# [ -r /root/1 ] && echo yes || echo no
yes
[root@andon ~]# [ -x /root/1 ] && echo yes || echo no
no
[root@andon ~]# [ -w /root/1 ] && echo yes || echo no
yes

文件比较判断式:

【shell】条件判断式

[root@andon ~]# [  /root/1 -nt /root/2 ] && echo yes || echo no
no
[root@andon ~]# [ /root/1 -ot /root/2 ] && echo yes || echo no
yes
[root@andon ~]# [ /root/1 -ef /root/2 ] && echo yes || echo no
no
[root@andon ~]# ln 1 3
[root@andon ~]# [ /root/1 -ef /root/3 ] && echo yes || echo no
yes

 整数比较判断式:

【shell】条件判断式

[root@andon ~]# [ 4 -eq 4 ] && echo yes || echo no  #等于
yes
[root@andon ~]# [ 4 -ne 4 ] && echo yes || echo no ##不等于
no
[root@andon ~]# [ 5 -gt 4 ] && echo yes || echo no ##大于
yes
[root@andon ~]# [ 5 -lt 4 ] && echo yes || echo no ##小于
no
[root@andon ~]# [ 5 -ge 4 ] && echo yes || echo no ##大于等于
yes
[root@andon ~]# [ 5 -le 4 ] && echo yes || echo no ##小于等于
no

字符串判断式:

【shell】条件判断式

[root@andon ~]# [ -z $a ] && echo yes || echo no  ##判断为空
no
[root@andon ~]# [ -n $a ] && echo yes || echo no ##判断非空
yes
[root@andon ~]# b=abc
[root@andon ~]# [ $a == $b ] && echo yes || echo no
yes
[root@andon ~]# [ $a != $b ] && echo yes || echo no
no

多重条件判断式:

【shell】条件判断式

[root@andon ~]# [ -n $b -a -z $a ] && echo yes || echo no  ##与
no
[root@andon ~]# [ -n $b -o -z $a ] && echo yes || echo no ##或
yes