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

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

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

答案1

首先:要在后台运行命令,请键入该命令,然后按单个&,双击&&逻辑和运算符(以及||逻辑或)。运行command1 && command2返回逻辑真如果两个命令均未返回错误,则返回代码 0(即“无错误”)。作为常用的副作用,当 command1 返回错误时,command2 不会被执行,因为如果已知第一个参数为 false,则逻辑与运算的结果不能产生 true。

command1 ; command2 & command3

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

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

{ command1 ; command2 ; } & command3

相关内容