此命令每秒将直到g.co的毫秒数打印十次:
ping -i 0.1 g.co | grep ms
如果我仅添加另一个grep,它将不再打印任何内容(在Mac和Debian上均如此):
ping -i 0.1 g.co | grep ms | grep m
那是为什么?
yes | grep y | grep y
这确实可以打印出无限的y行序列
答案 0 :(得分:0)
只需等待一段时间。在打印整个块之前,mac os等待缓冲区填满。
如果您确实希望立即逐行输出,则可以在两个grep命令中添加“ --line-buffered”标志,从而有效地使您的命令-
ping -i 0.1 g.co | grep ms-行缓冲| grep m-行缓冲
有关更多详细信息,请参阅另一个问题- bash: force exec'd process to have unbuffered stdout