zoukankan      html  css  js  c++  java
  • Shell中的&&与||的区别

    那个 || 刚好完全跟 && 相反,当前一个指令有错误时,在 || 后面的指令才会被执行! (要注意,那个 | 
    是两个 | ,而 | 按键则是反斜线 同一个按键, 因此,按下 [Shift] 加上 [] 就会出现那个 | 啰!) 
    因此,简单的来说,当 ls /tmp/vbirding 发生错误时,才会使用 touch /tmp/vbirding 去建立这个档案
    的意思。 是否很有趣啊?这个 || 及 && 对于系统管理员在管理某些档案权限、存在等问题时, 可是很
    有用的东西喔!好了,现在我们来玩比较难一点的,看看底下的例题: 
    例题:以 ls 测试 /tmp/vbirding 是否存在,若存在则显示 "exist" ,若不存在,则显示 "not 
    exist"! 
    答:  
           这又牵涉到逻辑判断的问题,如果存在就显示某个数据,若不存在就显示其它数据,
           那我可以这样做:  
                   
                  ls /tmp/vbirding && echo "exist" || echo "not exist" 
            
           意思是说,当 ls /tmp/vbirding 执行后,若正确,就执行 echo "exist" ,若有问
           题,就执行 echo "not exist" !那如果我写成:  
                   
                  ls /tmp/vbirding || echo "not exist" && echo "exist" 
            
           对不对啊?这其实是有问题的,为什么呢?因为指令是一个一个往下执行,因此,在
           上面的例子当中,如果 /tmp/vbirding 不存在时,他会:  
                   
                  1. 若 ls /tmp/vbirding 不存在,因此回传一个非为 0 的数值;  
              2.  接下来经过 || 的判断,发现前一个指令回传非为 0 的数值,因此,程序开
                  始执行 echo "not exist" ,而 echo "not exist" 程序肯定可以执行成功,
                  因此会回传一个 0 值给后面的指令;  
              3.  经过 && 的判断,咦!是 0 啊!所以就开始执行 echo "exist" 。 
            
           所以啊,嘿嘿!第二个例子里面竟然会同时出现 not exist 与 exist 呢!真神奇~ 
     
    经过这个范例的练习,您应该会了解,由于指令是一个接着一个去执行的,因此,如果真要使用判断, 那
    么这个 && 与 || 的顺序就不能搞错~一般来说,判断式最多会有三个,也就是:  
           command1 && command2 || command3 
    而且顺序通常不会变,因为一般来说, command2 与 command3 会放置肯定可以执行成功的指令, 因此,
    依据上面例题的逻辑分析,您就会晓得为何要如此放置啰~这很有用的啦! 而且.....考试也很常考~
  • 相关阅读:
    类和对象
    类和对象1
    常见的子串问题
    常见的算法问题全排列
    第六届蓝桥杯java b组第五题
    第六届蓝桥杯java b组第四题
    第六届蓝桥杯java b组第三题
    第六届蓝桥杯java b组第二题
    第六届蓝桥杯java b组第一题
    第八届蓝桥杯java b组第三题
  • 原文地址:https://www.cnblogs.com/double12gzh/p/10166259.html
Copyright © 2011-2022 走看看