grep 在打印前等待更多行

  • 本文关键字:等待 打印 grep bash grep
  • 更新时间 :
  • 英文 :


我把这个命令放到 bash 中,希望它打印FOO,然后等待更多输入:

(echo FOO; cat) | grep FOO | cat

相反,它不打印任何内容,并等到我按 Ctrl+D 后再显示任何内容。

如果我最后删除|cat,问题就会消失。

这是怎么回事?grep 是否在等待更多行,并且仅在管道传输到其他内容时?还是在等待

第一个cat正在等待输入。

grep ,出于性能原因,是分块读取,没有足够的输入,所以它只是等待。这可以通过强制它读取每一行来解决:

(echo FOO; cat) | grep --line-buffered FOO | cat

相关内容

  • 没有找到相关文章

最新更新