我对以下表达式如何工作有些困惑。
cc file_name.c && ./a.out
当filename.c成功编译时,其存在状态将为0(零)。 所以按照逻辑和&&操作,第二个表达式(./a.out)不应该被执行。 但它仍然有效,并给我结果。这个怎么运作 ?
谢谢
答案 0 :(得分:2)
0
表示在shell中取得成功。它与C中的不同。来自bash
man page:
AND和OR列表分别是由&& 和││控制运算符分隔的一个或多个管道的序列。 AND和OR列表以左关联性执行。 AND列表的格式为
command1 && command2
当且仅当 command1 返回退出状态为零时,才会执行command2 。
答案 1 :(得分:1)
执行shell命令时,返回值为0表示命令已成功执行。非零值表示处理命令时出错。因此,如果上一个命令成功,它将继续执行下一个命令,否则中止。