私の質問は、cd がパイプの先頭または途中にあるときに、なぜ cd が bash のように動作するのかということです。
私がcdを与えるとき | ls、それでも親ディレクトリ内のファイルを出力しますが、基本的には cd コマンドを無視します。
csh でこのように実装されていないのはなぜですか 。ls の場合、ホーム ディレクトリに cd し、そのディレクトリに ls を適用する必要があります。制御がシェルに戻ったときに、シェルが実行されている pwd の古い値を保持する必要があります。つまり、パイプライン内の cd は、cd コマンドの右側にあるすべてのコマンドに対して、変更されたディレクトリを使用する必要があります。
ここで基本的な設計原則が欠けていますか?