cdh*_*wie 122

&&运营商是一个布尔AND运算符:如果左侧返回一个非零退出状态,操作者返回的状态和不评估右侧(它出现短路),否则计算右侧并返回其退出状态.这通常用于确保command2command1在成功运行时运行.

所述;令牌只是分开的命令,所以它会运行第二个命令不管第一个是否成功.

  • @CharlieParker`&`导致命令在后台运行,所以是的."在后台运行"与"仅当另一个成功运行时运行此下一个命令"非常不同. (14认同)
  • 是双&符号`&&'与bash中的单个&符号不一样?&` (6认同)
  • `;` 是否仍然等待第一个命令完成? (2认同)

jim*_*-cl 30

command1 && command2

command1 && command2执行command2当(且仅当)command1执行成功结束.在Unix行话中,这意味着退出代码/返回代码等于零.

命令1; 命令2

command1; command2在执行command2之后command1,顺序执行.命令是否成功无关紧要.


Dan*_*ahr 5

前者是AND使用短路评估的简单逻辑,后者只是界定两个命令。

实际发生的情况是,当第一个程序返回一个非零退出代码时,将对整个AND程序求值,FALSE并且第二个命令将不会执行。后者只是简单地按顺序执行它们。