![如果我们按如下方式执行脚本,工作流程将会是怎样的](https://linux22.com/image/913955/%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E6%8C%89%E5%A6%82%E4%B8%8B%E6%96%B9%E5%BC%8F%E6%89%A7%E8%A1%8C%E8%84%9A%E6%9C%AC%EF%BC%8C%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E5%B0%86%E4%BC%9A%E6%98%AF%E6%80%8E%E6%A0%B7%E7%9A%84.png)
如果我们按如下方式执行脚本,工作流程将会是什么样的:
script1 &
script2 &
script3
script4
我需要在完成脚本 1/2 之后运行脚本 3/4。
答案1
工作流程是不可预测的,如下所示:除非脚本 3 中有逻辑来测试脚本 1 和脚本 2 的状态,否则脚本 3 可能会在脚本 1 或脚本 2 完成之前完成。脚本 4 也是如此:它现在告诉的只是它将在脚本 3 完成后启动,但除非脚本 4 中有逻辑来测试脚本 1 和脚本 2 的状态,否则脚本 1 和/或脚本 2 可能会完成或仍在运行。
这将在后台按顺序运行它们:
(script1; script 2; script3; script 4) &
或者如果 1/3 和 2/4 独立:
(script1; script3) &
(script2; script4) &
nohup
如果你不想在退出命令行时停止它
但是如果在其他脚本中执行脚本的话。这样会更简洁,而且没有人会忘记在第一个脚本完成后运行第二个脚本。