默认情况下,Shell 脚本的执行在行为上是同步的?
Script1
Script2
Run Code Online (Sandbox Code Playgroud)
我有一个 script1,需要 4 分钟以上才能完成,下一个工作取决于此。(类似于生产者和消费者问题)。
想知道 script2 是否等到 script1 完成执行。
虽然我不完全确定您想知道什么,但这里有一些常见的事情。
您可以运行并行脚本 - 将它们发送到后台,例如:
script1 &
script2 &
script3 &
Run Code Online (Sandbox Code Playgroud)
所有 3 个脚本将“并行”运行。
现在您可能想知道的是 - 串行执行,当第二个依赖于第一个时。
是通过pipe
机制来实现的。想象:
long_running_script_what_produdes_lines | wc -l
Run Code Online (Sandbox Code Playgroud)
两个程序同时运行,并且wc
等待输出long_running_script_what_produdes_lines
并且将对所有行进行计数。
这里还有其他IPC
(进程间通信)方法(例如命名管道、信号)。
如果您需要了解其他信息,请重新表述问题。