【发布时间】:2014-12-04 02:32:02
【问题描述】:
(echo foo && sleep 1 && echo bar) | grep -P . | tee /dev/null
上面的代码是我能想到的最小的问题。预期的行为是 foo 将被回显,一秒钟后,bar 将被回显。
实际发生的是第二次通过,然后foo 和bar 同时被回显。如果您删除 任一 grep 或 tee 命令(或两者,显然),正确的行为就会发生。但是和他们在一起就不行了。
我认为这是某种缓冲问题,但我不知道如何解决。这对我来说发生的实际脚本运行了很长一段时间,直到最后我都没有看到任何日志消息。哈! :(
【问题讨论】:
-
“正确”和“预期”是指“期望”。您看到的行为既正确又符合预期。