shell_条件判断_逻辑判断符号

逻辑判断符号

&& -a 与运算,两边都为真的适合,结果为真

|| -o 或运算,两边有一个为真,结果就为真

  • 语法
在[]和test中使用的操作符 在[[]]和(())中使用的操作符 说明
-a && and ,与,两端为真,则结果为真
-o || or ,或,两端一个为真 则结果为真
! ! not ,非,两端相反,则结果为真
  • 应用实例

    [root@localhost ~]# ###在[]中使用
    [root@localhost ~]# [ 2 -gt 1 &&  2 -eq 2 ] && echo ok || echo no #####中括号中不能使用&&
    bash: [: 缺少 `]'
    no
    [root@localhost ~]# [ 2 -gt 1 -a  2 -eq 2 ] && echo ok || echo no ###与条件
    ok
    [root@localhost ~]# [ 2 -gt 1 ]&&  [ 2 -eq 2 ] && echo ok || echo no ###与条件
    ok
    [root@localhost ~]# [ 2 -gt 3 ]&&  [ 2 -eq 2 ] && echo ok || echo no ###与条件
    no
    [root@localhost ~]# [ 2 -gt 3 -a  2 -eq 2 ] && echo ok || echo no  ###与条件
    no
    [root@localhost ~]# [ 2 -gt 3 -o  2 -eq 2 ] && echo ok || echo no   ###或条件
    ok
    [root@localhost ~]# [ 2 -gt 3 ]|| [ 2 -eq 2 ] && echo ok || echo no  ###或条件
    ok
    [root@localhost ~]# [ ! 2 -gt 3 ] && echo ok || echo no   ###取反
    ok
    [root@localhost ~]# [ ! 2 -gt 1 ] && echo ok || echo no
    no
    [root@localhost ~]# 
    
    #############################################在双中括号中使用
    [root@localhost ~]# [[ 2 -gt 3 -o  2 -eq 2 ]] && echo ok || echo no  ####就不能使用之前的-a这类操作符了
    bash: 条件表达式中有语法错误
    bash: `-o' 附近有语法错误
    [root@localhost ~]# [[ 2 -gt 3 &&  2 -eq 2 ]] && echo ok || echo no
    no
    [root@localhost ~]# [[ 2 -gt 3 ||  2 -eq 2 ]] && echo ok || echo no
    ok
    [root@localhost ~]# 
    [root@localhost ~]# [[ 2 -gt 3 || ! 2 -eq 2 ]] && echo ok || echo no  ###!加个取反
    no
    [root@localhost ~]# 
    
    
    
    
posted @   翻滚的小井蛙  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示