如何用一条命令在后台运行多个程序?

如何用一条命令在后台运行多个程序?

如何用一条命令在后台运行多个程序?

我已尝试过以下命令,但它们不起作用。

nohup ./script1.sh & && nohup ./script2.sh &
-bash: syntax error near unexpected token '&&'

nohup ./script1.sh & ; nohup ./script2.sh &
-bash: syntax error near unexpected token ';'

答案1

从 shell 语法的角度来看,分隔像/ / ...&这样的命令(尽管当然具有不同的语义)。所以这只是:;|&&

cmd1 & cmd2 & cmd3 &

答案2

bash 联机帮助页部分标题为复合命令有两个可用的选项:列表命令和分组命令。

组命令是一系列用大括号括起来的命令{}。列表是相同的,用括号括起来()。两者都可用于将多个命令设置为背景,最后将整个集合作为一个集合设置为背景。列表构造在子 shell 中执行命令,因此不会保留变量分配。

执行一组命令:

{ command1 & command2 & } &

您还可以在列表(子 shell)中执行命令:

( command1 & command2 ) &

答案3

其他方式:

$(command1 &) && command2 & 

相关内容