LINUX.ORG.RU

Повесить скрипт на каждую новую строку в stdin


0

0

Скрипт myscript выдает в stdout раз в минуту строку.

Хочу повесить на каждую новую строчку в stdout команду mycommand (ей не нужен stdin, просто команда без аргументов).

Пробовал через

sh ./myscript | xargs mycommand

но не выходит ибо xargs посовывает mycommand-е то что сам получает на входе. А мне нужно чтоб xargs не передавал ничего а только инициировал запуск.

Может поделитесь своими рецептами?

Пробовал обнулять каждую новую строку на лету перед подачей на xargs — тоже не выходит.

sh ./myscript.sh | awk '{print " "}' | xargs mycommand

gkrellm
() автор топика

А зачем тут вообще xargs? Если я верно понял условие, достаточно

sh ./myscript | mycommand

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

Ну например эта команда не бикает на каждой новой строке, хотя должна по такой логике...

sh ./myscript | beep

Надо как-то запретить конечной команде читать stdin, пока не вышло :(

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

>>cmd | while read line; do echo $line; done

>>tail -n100 -f /var/log/messages | while read line; do echo $line; done

Точно! Спасибо, мастер, запишу заклинаньице.

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

>>echo -e '1\n2\n3\n' | awk '{ system("/bin/date") }'

Хитро, тоже работает! Респект.

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