LINUX.ORG.RU

Как иницииорвать запуск при появлении вывода

 


1

2

При выполнении программы в вывод не поступает никаких данных до достижения определённых условий. Как инициировать запуск второй программы при появлении какого-либо вывода от первой? Вывод первой программы всегда разный. Вторая программа должна запуститься один раз, либо с фиксированной зедержкой, так как первая программа может выводить слишком много. Возможно поможет xargs, но я не совсем понимаю как он работает, возможно должно получится что-то похожее на это: ./script.sh | xargs -?? ./detect.sh

Ответ на: комментарий от vachicul

Как он у тебя работает, если ты перестаешь читать вывод prog1 while read str; do break; done? У тебя заблокируется выполнение prog1 (с аварийным завершением) на выводе данных.

anonymous
()
Ответ на: комментарий от anonymous

Я не знаю, но как-то работает. Мне не нужно что бы prog1 читалась много раз, достаточно наличие однократного вывода что бы запустилась prog2, после этого prog1 работающая уже не нужна.

vachicul
() автор топика
Ответ на: комментарий от vachicul

Если напишу «патч Бармина», ты его не понимая выполнишь?

prog1 | read -n1; prog2 - вариант без проверки, если prog1 ничего не выведет

prog1 | tee >(read -n1; prog2) - без проверки, вывод prog1 не обрывается

возможно будет нужен stdbuf -o0, так как пишешь какие-то ужаса с prog1

Хотя, я не проверял, то что написал

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.