Shell编程高级篇之条件判断

条件判断种类

  1. 根据文件类型进行判断
  2. 按照文件权限进行判断
  3. 俩个文件之间的比较判断
  4. 两个整数之间的比较判断
  5. 字符串的判断
  6. 多重条件判断

根据文件类型进行判断

在这里插入图片描述
使用 [ ] 括号来进行判断,利用 $? 来检测判断结果

[root@localhost ~]# [ -e /tmp ] && echo yes || echo no
yes
[root@localhost ~]# [ -e /tmpe ] && echo yes || echo no
no

#注意 [ ] 中内容和括号之间有空格,我们结合之前所学的 && 和 || 实现

按照文件权限进行判断

在这里插入图片描述

[root@lx102 ~]# ll
总用量 12
-rw-------. 1 root root 1289 424 02:50 anaconda-ks.cfg
-rw-r--r--  1 root root   84 511 22:43 a.txt
-rw-r--r--  1 root root  583 512 12:29 file.sh
[root@lx102 ~]# [ -r anaconda-ks.cfg ] && echo yes || echo no
yes
[root@lx102 ~]# [ -w anaconda-ks.cfg ] && echo yes || echo no
yes
[root@lx102 ~]# [ -x anaconda-ks.cfg ] && echo yes || echo no
no

俩个文件之间的比较判断

在这里插入图片描述

[root@localhost ~]# ln xo.txt /tmp/
[root@localhost ~]# 
[root@localhost ~]# [ /root/xo.txt -ef /tmp/xo.txt ] && echo yes || echo no
yes

两个整数之间的比较判断

在这里插入图片描述

[root@localhost ~]# [ 11 -ge 22 ] && echo yes || echo no
no
[root@localhost ~]# 
[root@localhost ~]# [ 22 -ge 11 ] && echo yes || echo no
yes

字符串的判断

在这里插入图片描述

[root@localhost ~]# name=shanchuan
[root@localhost ~]# age=""
[root@localhost ~]# unset sex
[root@localhost ~]# 
[root@localhost ~]# [ -z "$name" ] && echo yes || echo no
no
[root@localhost ~]# 
[root@localhost ~]# [ -z "$age" ] && echo yes || echo no
yes
[root@localhost ~]# 
[root@localhost ~]# [ -z "$sex" ] && echo yes || echo no
yes

#字符为空和没有赋值都为空
[root@localhost ~]# a=123
[root@localhost ~]# b=456
[root@localhost ~]# 
[root@localhost ~]# [ "$a" == "$b" ] && echo yes || echo no
no

多重条件判断

在这里插入图片描述

测试:逻辑与
[root@localhost ~]# a=100
[root@localhost ~]# [ -n "$a" -a "$a" -gt 150 ] && echo yes || echo no
no
[root@localhost ~]# 
[root@localhost ~]# a=200
[root@localhost ~]# [ -n "$a" -a "$a" -gt 150 ] && echo yes || echo no
yes

逻辑非
[root@localhost ~]# a=100
[root@localhost ~]# [ -n "$a" ] && echo yes || echo no
yes
[root@localhost ~]# 
[root@localhost ~]# [ ! -n "$a" ] && echo yes || echo no
no

-n 变量不为空,则为真,加入!后,判断取反,所以变量为空才是真
注意:! 和 判断条件之间有个空格~~~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值