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

Я могу сказать, что это ошибка, когда вы перетаскиваете файл и используете gnome-shell.

просто сделайте следующее:

Щелкните правой кнопкой мыши файл, чтобы добавить файл в очередь

, затем дважды щелкните файл в процесс очереди и обрабатывать очередь:

, и это все ....

enter image description here

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

2 ответа

Вы можете отправить вывод 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
ответ дан 17 July 2018 в 23:02

Вы можете отправить вывод 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
ответ дан 24 July 2018 в 13:35
  • 1
    поэтому, если я ставлю скобку, это как (python3 a.py > output.log & tail -n+1 -f output.log | (grep -q hello && python3 b.py)) – william007 15 January 2018 в 05:38
  • 2
    @ william007 Вы хотите, чтобы вывод первого скрипта был входом второго скрипта? – muru 15 January 2018 в 05:40
  • 3
    на самом деле вывод не используется, чтобы решить, следует ли запускать второй скрипт – william007 15 January 2018 в 05:41
  • 4
    Затем (python3 a.py > output.log & (tail -n+1 -f output.log | grep -q hello) && python3 b.py) ближе к тому, что я вложил в ответ. – muru 15 January 2018 в 05:43
  • 5
    Спасибо, это (python3 a.py > output.log & ((tail -n+1 -f output.log | grep -q hello) && python3 b.py))? – william007 15 January 2018 в 05:45

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

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