条件测试操作命令二

步骤三:整数值比较
参与比较的必须是整数(可以调用变量),比较非整数值时会出错:
[root@svr5 ~]# A=20.4
[root@svr5 ~]# [ $A -gt 10 ] //不支持小数比较
-bash: [: 20.4: integer expression expected
1)-eq 比较两个数是否相等。
[root@svr5 ~]# X=20 //定义一个测试变量
[root@svr5 ~]# [ $X -eq 20 ] && echo “相等” || echo “不相等”
相等
[root@svr5 ~]# [ $X -eq 30 ] && echo “相等” || echo “不相等”
不相等
2)-ne 比较两个数是否不相等。
[root@svr5 ~]# [ $X -ne 20 ] && echo “不等于” || echo “等于”
等于
[root@svr5 ~]# [ $X -ne 30 ] && echo “不等于” || echo “等于”
不等于
3)-gt 比较前面的整数是否大于后面的整数。
[root@svr5 ~]# [ $X -gt 10 ] && echo “大于” || echo “否”
大于
[root@svr5 ~]# [ $X -gt 20 ] && echo “大于” || echo “否”

[root@svr5 ~]# [ $X -gt 30 ] && echo “大于” || echo “否”

4)-ge 比较前面的整数是否大于或等于后面的整数。
[root@svr5 ~]# [ $X -ge 10 ] && echo “大于或等于” || echo “否”
大于或等于
[root@svr5 ~]# [ $X -ge 20 ] && echo “大于或等于” || echo “否”
大于或等于
[root@svr5 ~]# [ $X -ge 30 ] && echo “大于或等于” || echo “否”

5)-lt 比较前面的整数是否小于后面的整数。
[root@svr5 ~]# [ $X -lt 10 ] && echo “小于” || echo “否”

[root@svr5 ~]# [ $X -lt 20 ] && echo “小于” || echo “否”

[root@svr5 ~]# [ $X -lt 30 ] && echo “小于” || echo “否”
小于
6)-le 比较前面的整数是否小于或等于后面的整数。
[root@svr5 ~]# [ $X -le 10 ] && echo “小于或等于” || echo “否”

[root@svr5 ~]# [ $X -le 20 ] && echo “小于或等于” || echo “否”
小于或等于
[root@svr5 ~]# [ KaTeX parse error: Expected 'EOF', got '&' at position 12: X -le 30 ] &̲& echo "小于或等于" …(who | wc -l) //赋值给变量N
[root@svr5 ~]# [ $N -gt 5 ] && “超过了” || echo “没超过”
没超过
上述赋值给变量N及与5比较的操作,可以简化为如下形式:
[root@svr5 ~]# [ $(who | wc -l) -gt 5 ] && “超过了” || echo “没超过”
没超过
步骤四:字符串匹配
1)== 比较两个字符串是否相同
检查当前用户是否为root。
当root用户执行时:
[root@svr5 ~]# [ KaTeX parse error: Expected 'EOF', got '&' at position 18: …ER == "root" ] &̲& echo "YES" ||… [ KaTeX parse error: Expected 'EOF', got '&' at position 18: …ER == "root" ] &̲& echo "YES" ||… [ $USER != “root” ] && echo “禁止访问” || echo “欢迎”
禁止访问
当root用户执行时:
[root@svr5 ~]# [ KaTeX parse error: Expected 'EOF', got '&' at position 18: …ER != "root" ] &̲& echo "禁止访问" |…var1" ] && echo “空值” || echo “非空值”
非空值
[root@svr5 ~]# [ -z KaTeX parse error: Expected 'EOF', got '&' at position 8: var2 ] &̲& echo "空值" || …var2" ] && echo “空” || echo “非空”
非空 //空格视为有效字符,所以非空
[root@svr5 ~]# [ -z KaTeX parse error: Expected 'EOF', got '&' at position 8: var3 ] &̲& echo "空值" || …var2" ] && echo “不为空” || echo “为空”
不为空
[root@svr5 ~]# [ -n “$var3” ] && echo “不为空” || echo “为空”
为空
步骤五:多个条件/操作的逻辑组合
1)&&,逻辑与
给定条件必须都成立,整个测试结果才为真。
检查变量X的值是否大于10,且小于30:
[root@svr5 ~]# X=20 //设置X变量的值为20
[root@svr5 ~]# [ $X -gt 10 ] && [ $X -lt 30 ] && echo “YES”
YES
多个条件组合时,可以使用 [[ … ]] 界定,比如上述测试可以改为如下:
[root@svr5 ~]# [[ $X -gt 10 && $X -lt 30 ]] && echo “YES”
YES
2)||,逻辑或
只要其中一个条件成立,则整个测试结果为真。
检查变量X的值是否小于10或者小于30:
[root@svr5 ~]# [[ $X -lt 10 || $X -lt 30 ]] && echo “YES”
YES
只要/tmp/、/var/spool/目录中有一个可写,则条件成立:
[root@svr5 ~]# [ -w “/tmp/” ] || [ -w “/var/spool/” ] && echo “OK”
OK

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值