Я запускаю две программы на Python, скажем, a.py, b.py
То, что я хочу, чтобы запустить две программы по python3 a.py
и python3 b.py
, но python3 b.py
нужно запускать только тогда, когда python3 a.py
подсказывает строка с только «привет» на экране - a.py
будет продолжать работать.
Можно ли добиться этого на терминале Ubuntu?
Вы можете отправить вывод 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
.