我想写一个shell脚本shell脚本的执行顺序
- 启动一个过程,从数据的基础上获取数据,并和写入文件(时间做到这一点从5分钟变化 - 几个小时)
- 使用在生成的文件中的数据,并做一些计算
我可以在外壳使用什么命令暂停,直到我的第一个过程完成后执行第二部分作为第二部分不应该开始直到写入前到文件是完整的?
我想写一个shell脚本shell脚本的执行顺序
我可以在外壳使用什么命令暂停,直到我的第一个过程完成后执行第二部分作为第二部分不应该开始直到写入前到文件是完整的?
那么,你并不需要一个命令。壳牌应该简单地被阻塞,直到催生子进程终止:
proc1
proc2 # <- will not be called until proc1 is done.
事情只有当你做这样的东西变得复杂:
proc1 &
proc2 # <- will start immediately after proc1 was launched
在这种情况下,你将不得不wait
,作为Politank-Z点out:
proc1 &
wait
proc2
这没什么意义。
编辑:你的澄清
后,你必须得到第一个进程向你传达其子进程ID和检查,要完成。粗尝试将定期检查
ps x | grep -v grep | grep "$spawnedPID"
(假设子进程是不是grep命令本身)
您无法在非子进程上“等待”。 – 2015-04-02 16:51:13
@EtanReisner:你在技术上是正确的。最好的一种正确。我以为你能够等待盛大的孩子进程。正在编辑... – bitmask 2015-04-02 20:15:20
完成之前对第一部分的回报是否命令(即它在后台运行)?因为如果它只在完成时才返回,那么你不需要为此做任何事情。如果它在后台运行,那么你是否有一些方法可以知道它何时完成? – 2015-04-02 16:44:12
是的,它返回之前返回,并尝试执行第二部分,而写入文件尚未完成。 – Javad 2015-04-02 16:48:35
它以某种方式表示完成信号?你怎么知道什么时候结束? – 2015-04-02 16:51:28