我正在阅读The TTY demystified。在“作业和会话”部分中,有一个用户使用 xterm 的示例:
$ cat
hello
hello
^Z
[1]+ Stopped cat
$ ls | sort
并且有一个表格列出了所涉及的进程:xterm
、bash
( 的子进程xterm
)和最后三个进程(cat
、ls
和sort
)都具有相同的 PPID(父进程 ID)——它们都是同一进程的子bash
进程。
现在,我知道 bash 中的管道是在subshells中执行的。我一直认为这个子shell的东西意味着bash
每个子shell都有一个额外的过程。我的问题是:不应该还有另外两个bash
进程,都是第一个的孩子bash
,然后ls
是第一个的孩子,bash
然后sort
是第二个的孩子bash
吗?文章中的表格是简化了,还是我对子shell的理解有误?