在 bash 脚本中处理顺序和并行作业

Pri*_*raj 1 bash shell

我知道在 bash 编程中,comamnd1;command2;command3将按顺序command1&&command2&&command3运行它们,同时将它们并行运行。然而,当我结合会发生什么;&&在一起,例如command1 ; command2 && command 3?bash;&&bash之间的优先级是什么?以上命令是否等同于 (command1;commmand2) && command3(command1);(command2 && command3)

小智 6

第一件事:要在后台运行命令,您键入它后跟一个单&,双&&是一个逻辑和运算符(以及||是逻辑或)。如果两个命令都没有错误返回,则运行command1 && command2返回逻辑真(即返回代码 0,这意味着“没有错误”)。作为一个经常使用的副作用,当 command1 返回错误时不执行 command2,因为如果第一个参数已知为假,则逻辑和运算的结果不能产生真。

command1 ; command2 & command3
Run Code Online (Sandbox Code Playgroud)

命令从左到右执行:首先command1运行,等到它完成,然后command2在后台运行(后面是&),紧接着是command3

您可以使用大括号让一系列命令在后台运行,如下所示:

{ command1 ; command2 ; } & command3
Run Code Online (Sandbox Code Playgroud)