Запустите вторую команду, когда увидите, что в консоли появилось определенное ключевое слово

Я запускаю две программы на Python, скажем, a.py, b.py

То, что я хочу, чтобы запустить две программы по python3 a.py и python3 b.py, но python3 b.py нужно запускать только тогда, когда python3 a.py подсказывает строка с только «привет» на экране - a.py будет продолжать работать.

Можно ли добиться этого на терминале Ubuntu?

0
задан 15 January 2018 в 04:24

1 ответ

Вы можете отправить вывод a.py в файл и просмотреть этот файл:

python3 a.py > output.log &
tail -n+1 -f output.log | grep -q hello && python3 b.py

Первая команда выполняет a.py в фоновом режиме, отправляя вывод в output.log. Затем вторая команда отправляет содержимое от output.log до grep, что проверяет наличие hello. Если grep завершается успешно, указывая, что hello был найден, запускается b.py.

Обратите внимание, что время не точное. Из-за буферизации второй скрипт будет запущен через некоторое время после того, как на выходе появится hello.

1
ответ дан 15 January 2018 в 04:24

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

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