如何解决linux:为什么如果你通过管道将 ps 传送到 grep,grep 过滤器正在处理输出?管道是如何工作的?
使用像 ps aux |grep foobar
这样的典型命令,为什么 grep foobar
进程在输出中?
我认为 ps aux
输出被传递给 grep 以通过 grep 参数中的模式过滤行,但在您执行 ps aux
时 grep 仍未执行(至少我是这样假设,我肯定错了),稍后执行。
那么管道是如何工作的?
解决方法
原因很简单:
- 操作系统启动
grep
进程(作为管道目标)。 - 操作系统启动
ps
,发现grep
正在运行。 - OS 将
ps
的标准输出连接到grep
的标准输入。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。