• 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 会放置肯定可以执行成功的指令, 因此,
    依据上面例题的逻辑分析,您就会晓得为何要如此放置啰~这很有用的啦! 而且.....考试也很常考~
  • 相关阅读:
    CSS常见兼容性问题
    Ubuntu系统下创建python数据挖掘虚拟环境
    Django 模板中引用静态资源(js,css等)
    Django auth 登陆后页面跳转至/account/profile,修改跳转至其他页面
    Ubuntu14.04安装配置SVN及Trac
    禁止Chrome浏览器缓存的方法
    windows下安装配置Xampp
    Linux系统下用C语言获取MAC地址
    使用axios+formdata+vue上传图片遇到后台接受不到图片的值的问题
    使用vee-validate表单插件是如何设置中文提示?
  • 原文地址:https://www.cnblogs.com/double12gzh/p/10166259.html
Copyright © 2020-2023  润新知