2011-09-26 138 views
3

我寫了一個shell腳本來執行一系列命令。 shell腳本中的一個命令是啓動一個應用程序。但是,我不知道如何在啓動應用程序後繼續運行shell腳本。執行應用程序後運行shell腳本命令

例如:

... 
cp somedir/somefile . 
./application 
rm -rf somefile 

一旦我啓動的應用程序以「./application」我不再能夠繼續運行‘室射頻somefile’命令,但我真的需要刪除的文件從目錄中。

任何人有任何想法如何在啓動應用程序後競爭運行「rm -rf」命令?

感謝

回答

4

正如其他人所指出的,可以後臺應用程序(男人慶典「作業控制」,例如)。

此外,您還可以使用wait內置後來明確地等待後臺作業:

./application & 
echo doing some more work 

wait # wait for background jobs to complete 
echo application has finished 

你應該認真閱讀手冊頁和bash幫助更多的細節,一如既往:

1

你需要使用「&」,甚至nohup的後臺啓動命令。

nohup ./application > log.out 2>&1 
+1

是的,但不屬於R在這裏 –

2

在後臺啓動應用程序,這樣的外殼是不會等待它終止和啓動應用程序後立即將執行結果的命令:

./application & 

在此期間,您可以使用jobs命令檢查後臺作業,並通過wait及其ID來等待它們。例如:

$ sleep 100 & 
[1] 2098 
$ jobs 
[1]+ Running     sleep 100 & 
$ wait %1 
1

把啓動的進程背景:

./application &