&&和和||在c和unix shell中?

时间:2014-03-05 20:44:38

标签: c shell unix operators

C和unix shell中这些运算符之间的区别是什么?在C中没有&&意味着做第一个过程,如果是真的那么做第二个过程吗? unix shell会有什么不同?感谢

编辑我并不是指&&和和||,而是它们在c语言和unix shell中的区别。

1 个答案:

答案 0 :(得分:2)

优先权是一个很大的不同。

请考虑以下事项:

a || b && c

C中,如果a为真,则不需要评估bc,因为表达式被解析为a || (b && c)。但是,在shell中,

true || false && echo foo

将输出foo,因为它的解析方式与(a || b) && c相同。


另外,请注意,某些shell(例如bash)对&&||有两种用途。除了用于构造如上所述的命令列表之外,它们还可以用作C样式的布尔运算符,以在[[ ... ]]命令中组合条件表达式。