Как создать сценарий оболочки, которые ожидают до законченной программы и, после того, как закончено показывают мне сообщение, что теперь Ваша программа мертва

В сценарии оболочки, как создать сценарий, которые ожидают и проверяют, конкретное выполнение программы или не при выполнении затем ожидает пока мертвые после смерти программы, что сценарий покажет сообщение, что теперь программа мертва, это - все, Пример: Я играю в игру, теперь я хочу создать сценарий, который находит, что моя игра работает или не, если выполнение затем ожидает, непока игра не должна быть остановлена, как только игра остановилась, тот сценарий показывает мне сообщение, что "теперь Ваша игра мертва".

1
задан 30 November 2019 в 18:07

2 ответа

Если я создаю использование сценария Bash

$ cat > blah
#!/bin/bash
read
ls

Сделайте это исполняемым использованием chmod

chmod +x blah

Затем выполните его

$ bash blah 
-- script has stopped as i type this, it will continue on enter
bionic                        focal-desktop-amd64.iso            kde_neon                                  zsync_disco.sh
blah                          focal-desktop-amd64.iso.zs-old     qa_query.py                               zsync_eoan.sh
eoan-desktop-amd64.iso        focal-desktop-amd64.iso.zsync      qatracker.py                              zsync_focal.sh
eoan-desktop-amd64.iso.zsync  focal-desktop-amd64.iso.zsync.old  siduction-patience-lxqt-amd64-latest.iso

Выполнения сценария и паузы, ожидающие read завершаться. Я ввожу текст "-сценарий остановился, поскольку я ввожу это, он продвинется, вводят" и нажимают Enter.

Затем и только затем (когда read завершился), делает ls команда выполняется.

Я мог добавить "и" в конец read строка, таким образом, это работало в фоновом режиме и таким образом ls продолжился бы без ожидания.. но то, что Вы хотите, является на самом деле значением по умолчанию.

1
ответ дан 21 December 2019 в 23:46

Можно работать ps в цикле до Ваших прогонов программы. Когда это заканчивается, цикл с условием продолжения существует.

#!/bin/bash

appName="appname"
appCount=$(ps ax | grep $appName | grep -v grep | wc -l)
while [ "$appCount" -gt "0" ]
do
  sleep 1
  appCount=$(ps ax | grep $appName | grep -v grep | wc -l)
done
zenity --info --title="End" --text="Now your game is dead."

Поставьте имя своего приложения вместо appname. После done поместите строки, Вы хотите должными быть отобразить сообщение. Я использовал zenity для диалогового окна уведомления. Можно использовать что-то еще как echo если Вы хотите отобразить сообщение в окне терминала.

0
ответ дан 21 December 2019 в 23:46

Другие вопросы по тегам:

Похожие вопросы: