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

3
我编写了一个shell脚本来执行一系列命令。其中一个命令是启动一个应用程序。然而,我不知道如何在启动应用程序后继续运行shell脚本。
例如:
...
cp somedir/somefile .
./application
rm -rf somefile

当我使用"./application"启动应用程序后,我无法继续运行"rm -rf somefile"命令,但我真的需要从目录中删除该文件。

有人有任何想法如何在启动应用程序后继续运行"rm -rf"命令吗?

谢谢

4个回答

4

正如其他人指出的那样,您可以将应用程序放入后台运行(例如,请参阅“作业控制”中的man bash)。

此外,您可以使用wait内置命令来显式等待后台作业:

 ./application &
 echo doing some more work

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

你应该阅读man页和bash帮助以获取更多细节,如下:


请注意,保留了HTML标签。

2
在后台启动应用程序,这样 shell 就不会等待它终止,并且会在启动应用程序后立即执行后续命令:
./application &

同时,您可以使用jobs命令检查后台作业,并通过wait和它们的ID等待它们。例如:

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

1

你需要使用“&”并可能甚至使用nohup在后台启动命令。

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

1
将已启动的进程放到后台:
./application &

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接