因此,这不是问题,只是我很好奇。我正在使用从Debian分支的Linux Mint MATE。如果我做:
ps afx | grep abcdefg
我得到:
16599 pts/3 S+ 0:00 | \_ grep --color=auto abcdefg
因此,它显示了grep的过程。但是,这之后的ps
管道中:我本来以为上面做的ps
,得到的结果,然后将它们传送到grep
。那么结果中grep
实际显示出来的是ps
什么呢?以后不会发生吗?我认为我缺少有关管道实际功能的一些基本知识。
这个问题是重复的,并且属于unix.stackexchange.com。
总而言之,OpenGroup的Shell命令语言doc在有关“管道”的细节方面相对模糊:
流水线是由控制运算符'|'分隔的一个或多个命令的序列。除最后一条命令外,所有命令的标准输出均应连接至下一条命令的标准输入。
管道的格式为:
[!] command1 [ | command2 ...]
命令1的标准输出应连接到命令2的标准输入。在由作为命令一部分的重定向操作员指定的任何重定向之前,应将标准输入,标准输出或命令的两个都视为已由管道分配(请参阅重定向)。
如果管道不在后台(请参见异步列表),则外壳程序应等待管道中指定的最后一个命令完成,也可以等待所有命令完成。
请注意,尽管数据显然在管道中从“左向右”流动,但不能保证调度本身。
也可以看看:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句