【发布时间】:2014-08-08 11:17:43
【问题描述】:
基本上我想运行两个 shell 脚本,但我希望其中一个脚本仅在另一个脚本完成后运行,我将如何执行此操作? 我已经阅读了一些关于直到和同时的内容,但我不太明白如何使用它们。我确信这很简单,但是我对 Linux 很陌生。
【问题讨论】:
-
我认为这对我的情况没有帮助。我希望一个 shell 脚本启动另一个,然后等待它完成并再次启动它。
-
如果这是你想要的,那就完全不同了:见there。等待机制由:
./script2 & ; some_pid=$! ; wait $some_pid带来,您将写入您的脚本1,可能在循环中,等等。 -
@jaybee,
& ;是一个语法错误。只是script2 & some_pid=$!...但是当您立即致电等待时,我不清楚这里买了什么;还不如根本没有背景。 -
@STiGYFishh,如果您的第一个脚本只是运行
./other_script; other_stuff,那么它确实会等待other_script完成,然后再自动转到other_stuff,除非这样其他程序正在专门和有意地做一些事情来分离其父程序。如果你试图等待某件事完成,而它正在积极工作以逃避让其父母知道它何时完成,这是与通常情况不同的问题。 -
那么,回到最初的问题——@STiGYFishh,为什么你认为这种行为不是你已经得到的开箱即用的行为? (这可能需要您具体说明您正在运行的软件以及它的行为方式,因为某些不符合您要求的异常情况是不寻常的)。