Execute comandos de um pipe em tempo real

Execute comandos de um pipe em tempo real

Se eu tiver um pipe como cat /dev/somedevice | grep 'test'esse que gera comandos, como por exemplo echo 'test 17', os comandos aparecem em tempo real (sempre /dev/somedeviceentrega alguma linha). No entanto, se eu canalizar os comandos para sh, eles não serão invocados imediatamente devido ao buffer de pipe. Então

cat /dev/somedevice | grep 'test' | sh

não executará comandos em tempo real.

Existe alguma outra maneira de fazer isso? Com xargsou algo assim?

Responder1

Tente --line-bufferedfazer um fluxo contínuo:

cat /dev/somedevice | grep --line-buffered 'test' | sh

informação relacionada