2

使用 candump 读取 can bus 时:

$ candump can0

如果我 grep 一次:

$ candump can0 | grep <whatever>

它完美地工作:

  $ candump can0 | grep 1A8           
  can0  1A8   [8]  3C 53 C5 FF 0D C3 3A 01
  can0  1A8   [8]  3C 53 C5 FF 0D C3 3A 01

如果我尝试 grep 两次:

candump can0 | grep 1A8 | grep 1A8

它什么也不返回...

Ps:它可以通过使用这个来解决(candump can0,<whatever>,7ff | grep <whatever>但它只适用于那种精确的情况)

编辑:为了清楚起见,如果我 grep 两次相同的东西它仍然无法正常工作

4

1 回答 1

2

问题不是来自该缓冲区,candump而是来自grep该缓冲区的输出。

您可以在此处找到此行为的一个很好的解释。

于 2019-03-25T13:28:11.173 回答