Rah*_*til 35 bash shell-script
如何使用单个命令在后台运行多个程序?
我已经尝试了下面的命令,但它们不起作用。
nohup ./script1.sh & && nohup ./script2.sh &
-bash: syntax error near unexpected token '&&'
nohup ./script1.sh & ; nohup ./script2.sh &
-bash: syntax error near unexpected token ';'
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 31
从 shell 语法的角度来看,&将;/ |/ &&...等命令分开(当然语义不同)。所以它只是:
cmd1 & cmd2 & cmd3 &
Run Code Online (Sandbox Code Playgroud)
Eli*_*ady 12
题为“复合命令”的 bash 手册页部分有两个可用的选项,即列出命令和分组命令。
组命令是括在花括号中的一系列命令{}。列表是相同的,用括号括起来()。两者都可以用于将多个命令作为背景,最后将整个集合作为一个集合作为背景。list 构造在子 shell 中执行命令,因此不会保留变量分配。
执行一组命令:
{ command1 & command2 & } &
Run Code Online (Sandbox Code Playgroud)
您还可以在列表(子shell)中执行您的命令:
( command1 & command2 ) &
Run Code Online (Sandbox Code Playgroud)