2012-07-26 130 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表示命令已成功執行。非零值意味着處理命令時出錯。所以,如果先前的命令是成功的,它將繼續執行下一個命令,否則中止。