
Если у меня есть конвейер, как cat /dev/somedevice | grep 'test'
этот, выводящий команды, например echo 'test 17'
, команды появляются в реальном времени (каждый раз /dev/somedevice
выдает какую-то строку). Если же я передам команды в конвейер sh
, они не будут вызваны немедленно из-за буферизации конвейера. Так что
cat /dev/somedevice | grep 'test' | sh
не выполняет команды в реальном времени.
Есть ли какой-то другой способ? С помощью xargs
или что-то в этом роде?
решение1
Попробуйте --line-buffered
сделать непрерывный поток:
cat /dev/somedevice | grep --line-buffered 'test' | sh