Shell脚本执行序列

时间:2015-04-02 16:35:11

标签: bash shell unix sequence

我想编写一个

的shell脚本
  1. 启动一个从数据库获取数据并写入文件的过程(执行此操作的时间从5分钟到几小时不等)
  2. 使用生成的文件中的数据进行一些计算
  3. 在执行第二部分之前,我可以在shell中使用什么命令暂停直到我的第一个进程完成,因为在写入文件完成之前第二部分不应该开始?

2 个答案:

答案 0 :(得分:1)

嗯,你真的不需要命令。你的shell应该简单地阻塞,直到一个衍生的孩子终止:

proc1
proc2 # <- will not be called until proc1 is done.

当你做这样的事情时,事情变得复杂了:

proc1 &
proc2 # <- will start immediately after proc1 was launched

在这种情况下,你必须wait,因为Politank-Z指出:

proc1 &
wait
proc2

这没有任何意义。


编辑:澄清后

您必须先获得第一个流程,以便与您沟通其子流程的进程ID并检查其完成情况。粗略的尝试将定期检查

ps x | grep -v grep | grep "$spawnedPID"

(假设子进程本身不是grep命令)

答案 1 :(得分:0)

我认为您正在寻找wait命令,但这取决于第1部分的启动方式。