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
    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    利用原生JS判断组合键
    MySQL基本操作简述
    Java链接Mysql传输数据
    Java培训--->>基础
    Java基础之字符串-->>字符串处理
    Java基础之结构-->>条件结构与循环结构
    Java基础之数组-->>数组常用操作
    Front End Development Certification (HTML5 and CSS)
    FlexSlider插件的详细设置参数
    常见<meta>的基本用法详解
  • 原文地址:https://www.cnblogs.com/bpzblog/p/14537874.html
Copyright © 2011-2022 走看看