执行应用程序后运行shell脚本命令

时间:2011-09-26 15:12:11

标签: linux shell

我编写了一个shell脚本来执行一系列命令。 shell脚本中的一个命令是启动应用程序。但是,我不知道在启动应用程序后如何继续运行shell脚本。

例如:

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

用“./application”启动应用程序后,我无法再继续运行“rm -rf somefile”命令,但我确实需要从目录中删除该文件。

任何人都有任何想法如何在启动应用程序后竞争运行“rm -rf”命令?

由于

4 个答案:

答案 0 :(得分:4)

正如其他人所指出的那样,你可以对应用程序进行后台处理(man bash'job control',例如)。

此外,您可以使用wait内置来明确等待后续作业:

 ./application &
 echo doing some more work

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

您应该一如既往地阅读手册页和bash帮助以获取更多详细信息:

答案 1 :(得分:2)

在后台启动应用程序,这样shell就不会等待它终止,并会在启动应用程序后立即执行结果命令:

./application &

在此期间,您可以使用jobs命令检查后台作业,并通过wait及其ID等待。例如:

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

答案 2 :(得分:1)

您需要使用'&'在后台启动命令甚至可能是nohup。

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

答案 3 :(得分:1)

将已启动的流程置于后台:

./application &