Shell脚本执行是同步的吗?

Rag*_*hav 5 shell sh

默认情况下,Shell 脚本的执行在行为上是同步的?

Script1
Script2
Run Code Online (Sandbox Code Playgroud)

我有一个 script1,需要 4 分钟以上才能完成,下一个工作取决于此。(类似于生产者和消费者问题)。

想知道 script2 是否等到 script1 完成执行。

jm6*_*666 4

虽然我不完全确定您想知道什么,但这里有一些常见的事情。

您可以运行并行脚本 - 将它们发送到后台,例如:

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(进程间通信)方法(例如命名管道、信号)。

如果您需要了解其他信息,请重新表述问题。