2011-09-26 135 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 &