如果我们按如下方式执行脚本,工作流程将会是什么样的:
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
如果你不想在退出命令行时停止它
但是如果在其他脚本中执行脚本的话。这样会更简洁,而且没有人会忘记在第一个脚本完成后运行第二个脚本。