The TTY demystifiedを読んでいます。「ジョブとセッション」セクションには、xterm を使用するユーザーの例があります。
$ cat
hello
hello
^Z
[1]+ Stopped cat
$ ls | sort
関連するプロセスをリストした表があります: xterm、bash( の子xterm)、および最後の 3 つのプロセス ( cat、lsおよびsort) はすべて同じ PPID (親プロセス ID) を持ちます。これらはすべて同じbashプロセスの子です。
これで、bash のパイプラインはサブシェルで実行されることがわかりました。bashこのサブシェルのことは、各サブシェルに余分なプロセスがあることを意味するといつも思っていました。bash私の質問は次のとおりです。別の 2 つのプロセスが存在するべきではありません。どちらも最初の子であり、最初の子bashになり、2 番目の子になりますか? 記事の表は簡略化されていますか、それともサブシェルの理解が間違っていますか?lsbashsortbash