【问题标题】:is Shell scripts execution synchronous?Shell 脚本执行是同步的吗?
【发布时间】:2014-07-10 12:34:29
【问题描述】:

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

Script1
Script2

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

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

【问题讨论】:

  • 我不确定你在问什么,你能改写一下吗?脚本运行一系列命令。如果需要,这些命令可以是“后台”,但默认情况下不是。

标签: shell sh


【解决方案1】:

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

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

script1 &
script2 &
script3 &

所有 3 个脚本都将“并行”运行。

现在可能是您想知道的 - 串行执行,当第二个取决于第一个时。

通过pipe机制实现。想象一下:

long_running_script_what_produdes_lines | wc -l

两个程序同时运行,wc 等待来自long_running_script_what_produdes_lines 的输出并计算所有行数。

这里还有其他 IPC(进程间通信)方法(例如命名管道、信号)。

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

【讨论】:

  • && 怎么样?在终端中运行命令时,如果我希望它们串行,我会使用 &&。就像拥有goto='cd to/some/folder' 的别名一样——然后我可以使用goto && cd deeper/folder。不知道.shscrips里是不是也这样?
猜你喜欢
  • 2010-12-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2013-06-13
  • 2014-05-15
相关资源
最近更新 更多