简体   繁体   中英

Running shell script command after executing an application

I have written a shell script to execute a series of commands. One of the commands in the shell script is to launch an application. However, I do not know how to continue running the shell script after I have launched the application.

For example:

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

Once I launched the application with "./application" I am no longer able to continue running the "rm -rf somefile" command, but I really need to remove the file from the directory.

Anyone have any ideas how to compete running the "rm -rf" command after launching the application?

Thanks

As pointed out by others, you can background the application (man bash 'job control', eg).

Also, you can use the wait builtin to explicitely await the background jobs later:

 ./application &
 echo doing some more work

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

You should really read the man pages and bash help for more details, as always:

Start the application in the background, this way the shell is not going to wait for it to terminate and will execute the consequent commands right after starting the application:

./application &

In the meantime, you can check the background jobs by using the jobs command and wait on them via wait and their ID. For example:

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

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

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

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

./application &

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM