首页 > linux > shell组合退出状态——‘&&’ 与 ‘||’
2009六月22

shell组合退出状态——‘&&’ 与 ‘||’

本来不打算写这篇文章来着,毕竟怕大家笑,也怕大家误会我凑字数。

首先,这是我自己的博客,没必要凑字数的 :!: ,其次,就是这个组合退出状态并不像想象的那么简单,其内部妖藏巨细。

bash允许逻辑上组合退出状态,这样就可以一次测试多个内容。

其实,简单的说,这个组合退出状态就是语法 “&&” 与语法 “||”

不许笑,这俩玩意为啥被我说的如此耸人听闻。且看我一一道来(讲评书呢~)

statement1 && statement2 意思是“执行statement1,如果其退出状态为0,则执行statement2。

看下面的例子来说明一下:

if statement1 && statement2
then
      ...............................
fi

此脚本,先执行statement1,如果其返回0(根据上篇日志所讲,就是没有出错,没明白的同学去面壁),然后执行statement2。

如果statement2返回状态同样是0,就是同样没有出错,执行成功的话,执行then语句,否则退出。

这就说明在”&&”组合退出状态中,如果statement1运行失败,则脚本最后一个语句实际上是statement1,statement2根本没有执行的份。

statement1 || statement2 这个意思就很好理解了,执行statement1如果其退出状态非0,则执行statement2。

看完”and”总是会很好理解”or”的含义。

同样看例子:

if statement1 || statement2
then ........................
fi

此脚本说明哈,如果statement1成功则不执行statement2了,小样的让他蹲一辈子小黑屋(真邪恶。。)

所以需要注意的是,在“statement1 || statement2″中,如果statement1成功了,statement2是不会执行的,statement1是最后执行的语句。

如此解释之后,大家只需要记住,不要把和逻辑息息相关的判断写在组合退出条件的第二个语句里,因为你永远都不知道它是否会执行。。

PS:天真热,鼻子又出血了。(*^__^*) 嘻嘻……,不过出血就不用干活了。。

PPS:又落下了,not是取反操作,大家记一下哈。。

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/06/22/921/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

4 Responses to “shell组合退出状态——‘&&’ 与 ‘||’”

  1. #1 bolo 回复 | 引用 Post:2009-06-23 12:11

    不看了,面壁去

    [回复]

  2. #2 simaopig 回复 | 引用 Post:2009-06-23 12:13

    @bolo
    呵呵。祝你早点回来。。 :lol:

    [回复]

  3. #3 stri 回复 | 引用 Post:2009-09-12 20:54

    if(a) b
    能写成
    a && b;吧
    或者
    !a || b; :!: 愚见!

    [回复]

  4. #4 simaopig 回复 | 引用 Post:2009-09-14 11:21

    @stri
    应该是可以的,因为 && 和 || 的特性决定这样应该是OK的。

    不过我不喜欢这样的写法,很郁闷,看着有些绕。呵呵。

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)