如何启动一个命令,然后在第一次完成后并行启动一系列命令?

时间:2017-05-03 21:04:48

标签: linux shell unix

我想启动一个命令,等到它完成,然后启动一系列命令,然后我想将它们链接在一起。

我已尝试使用以下命令测试各种命令;和&&运营商,但我表达了我期望的行为。

我想要的是运行以下内容:

command1 && command2 && command3; (command4; command5; command6;)

鉴于上述命令,我希望发生以下情况:

Run command1
When command1 has successfully completed, start command2
When command2 has successfully completed, start command3
When command3 has succuessfully completed start (command4, command5 and command6) in parallel

1 个答案:

答案 0 :(得分:1)

此代码可实现您的目标:

window.location="<c:url value='/edit'/>" + "/" + someVariable

注意:如果您不使用{{1}等重定向,则在终端上使用command1 && command2 && command3; nohup command4 & nohup command5 & nohup command6 & (而非在脚本上)可以保留提示并在某处创建文件nohup调用它时。

使用nohup.out将保证使用> /dev/null 2>&1调用的进程将继续运行,即使您关闭运行该命令的终端(基本上,nohup运行具有挂断信号的给定命令忽略,以便在您注销后该命令可以在后台继续运行。)

这个更简单的代码版本也可以工作:

nohup

但是,如果你使用上面更简单的版本而你(例如)在完成(例如)nohup之前关闭终端,那么该命令将被中断而不能完成。