2012-07-26 78 views
0

我在下面的表达式工作中存在一些困惑。逻辑与运算中的混淆

cc file_name.c && ./a.out 

当filename.c编译成功时,其存在状态将为0(零)。 因此按照逻辑& &操作,第二个表达式(./a.out)不会被执行。 但它仍然有效,并给我结果。怎么运行的 ?

感谢

回答

2

0意味着在壳成功。它不是相同C.从bash man page

AND和OR列表是由& &││控制操作员,分别分离多个管道中的一个的序列。 AND和OR列表以左结合执行。一个AND序列的形式是

命令1& &命令2,如果

命令2执行,且仅当命令1返回零退出状态。

1

执行shell命令时,返回值为0表示命令已成功执行。非零值意味着处理命令时出错。所以,如果先前的命令是成功的,它将继续执行下一个命令,否则中止。