zoukankan      html  css  js  c++  java
  • Shell脚本编程基础之shell脚本逻辑运算

    逻辑运算

    • 逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。

    • 真、假、与、或、非。

    • 最常见到的逻辑运算就是循环的处理,用来判断是否该离开循环或继续执行循环内的指令。

    ture,false

    ## 二进制
    1 ture
    0 false
    

    与 &

    和0与结果为0,和1与保留原值

    ## 二进制的世界里只有1和0
    0&0=0
    1&0=0
    0&1=0
    1&1=1
    

    或 |

    与1或结果为1,与0或保留原值

    0 | 0 =0
    1 | 0 =1
    0 | 1 =1
    1 | 1 =1
    

    非 !

    取反,真取反为假,假取反为真

    !0 =1
    !1 =0
    

    异或 ^

    相同为假,不同为真

    0^0=0
    1^0=1
    0^1=1
    1^1=0
    

    异或的一个性质:

    假如
    a^b=c
    
    则
    a^c=b
    c^b=a
    

    $? 返回值是十进制的0或者1,不是逻辑判断的二进制的0或者1

    • 利用异或的特性实现变量值的互换
    
    ## 传统利用第三个变量tmp做中间人,进行互换
    [03:38:07 root@C8-3-55 ~]#x=10;y=20;tmp=$x;x=$y;y=$tmp;echo x=$x y=$y
    x=20 y=10
    ## 利用异或运算
    
    [03:40:35 root@C8-3-55 ~]#x=10;y=20;x=$[x^y];y=$[x^y];x=$[x^y];echo x=$x y=$y
    x=20 y=10
    
    ## 第一步将x^y的值赋给x
    
    [03:41:05 root@C8-3-55 ~]#x=10;y=20;x=$[x^y];echo x=$x
    x=30
    ## 第二步,此时x的值为30,再将[x^y]的值赋给y,y的值就被换成原始的x的值
    
    [03:42:43 root@C8-3-55 ~]#x=10;y=20;x=$[x^y];y=$[x^y];echo x=$x y=$y
    x=30 y=10
    
    ## 第三步,此时x的值为30,y的值为10,再将[x^y]的值赋给x,x的值就被换成原始y的值
    
    [03:47:04 root@C8-3-55 ~]#x=10;y=20;x=$[x^y];y=$[x^y];x=$[x^y];echo x=$x y=$y  x=20 y=10
    
    ## 从而完成了两个值的互换
    

    短路与或非

    $? 结果是否为1,命令是否执行成功或者报错失败

    短路与 &&

    实现逻辑判断

    • COMMD 1 为真 则执行COMMD2
    • COMMD 1 为假 则不执行COMMD2

    短路或 ||

    • COMMD 1 为真 则不执行COMMD2
    • COMMD 1 为假 则执行COMMD2
    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    MOSS的CSS样式说明
    RSS 简介(一)
    母版页详细分析
    导出 WINDOWS\assembly中DLL文件
    文件下载代码
    列表Field属性的巧妙运用(隐藏栏)
    javascript弹出窗口总结
    转[VBA起步]常用的、带解释的 VBA 短句
    如何生成自定义列表
    mysql 连接字符串与SQL不同
  • 原文地址:https://www.cnblogs.com/bpzblog/p/14537874.html
Copyright © 2011-2022 走看看