我想寫一個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