我理解在 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