Выполнение команды сценария оболочки после выполнения приложения - PullRequest
3 голосов
/ 26 сентября 2011

Я написал сценарий оболочки для выполнения ряда команд. Одной из команд в сценарии оболочки является запуск приложения. Однако я не знаю, как продолжить выполнение сценария оболочки после запуска приложения.

Например:

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

После того, как я запустил приложение с «./application», я больше не могу продолжать выполнять команду «rm -rf somefile», но мне действительно нужно удалить файл из каталога.

У кого-нибудь есть идеи, как конкурировать с командой rm -rf после запуска приложения?

Спасибо

Ответы [ 4 ]

4 голосов
/ 26 сентября 2011

Как отмечают другие, вы можете создать фоновое приложение (man bash 'контроль работы', например).

Кроме того, вы можете использовать встроенную функцию wait для явного ожидания фоновых заданий позже:

 ./application &
 echo doing some more work

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

Вам, как всегда, следует прочитать справочные страницы и справку bash:

2 голосов
/ 26 сентября 2011

Запустите приложение в фоновом режиме, таким образом оболочка не будет ждать его завершения и выполнит последующие команды сразу после запуска приложения:

./application &

Тем временем вы можетепроверьте фоновые задания с помощью команды jobs и дождитесь их с помощью wait и их идентификатора.Например:

$ sleep 100 &
[1] 2098
$ jobs
[1]+  Running                 sleep 100 &
$ wait %1
1 голос
/ 26 сентября 2011

переводит запущенный процесс в фоновый режим:

./application &
1 голос
/ 26 сентября 2011

Вам нужно запустить команду в фоновом режиме, используя '&' и, возможно, даже nohup.

nohup ./application > log.out 2>&1 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...