为什么此命令管道在 Debian 或 Mac 上不打印任何内容?
Why does this command pipe prints nothing on Debian or Mac?
此命令每秒打印十次直到 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 线
稍等片刻。 mac os 在打印整个块之前等待缓冲区填满。
如果你确实想要立即逐行输出,你可以将“--line-buffered”标志添加到两个 grep 命令,有效地使你的命令 -
ping -i 0.1 g.co | grep ms --line-buffered | grep m --line-buffered
有关更多详细信息,请参阅其他问题 -
bash: force exec'd process to have unbuffered stdout
此命令每秒打印十次直到 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 线
稍等片刻。 mac os 在打印整个块之前等待缓冲区填满。
如果你确实想要立即逐行输出,你可以将“--line-buffered”标志添加到两个 grep 命令,有效地使你的命令 -
ping -i 0.1 g.co | grep ms --line-buffered | grep m --line-buffered
有关更多详细信息,请参阅其他问题 - bash: force exec'd process to have unbuffered stdout