当我做:
sudo strace -p PID 2>&1 | grep -v "recvmsg"
Run Code Online (Sandbox Code Playgroud)
grep匹配它应该匹配的行,但是当我这样做时:
sudo strace -p PID|grep -v "recvmsg"
Run Code Online (Sandbox Code Playgroud)
它仍然显示所有呼叫.这是为什么?
这是因为strace将其所有输出写入stderr,而不是stdout.并且管道重定向stdout,而不是stderr.所以你需要在管道到grep之前将strader的stderr重定向到stdout.