クォートの問題をより慎重に処理する必要があります。1POSIXで標準化されていないものの結果を観察しています。POSIXは、インタープリターがパイプを実行する方法を標準化しません。Shellでは、パイプラインの右端のプログラムはメインシェルの子でさえありません。kBのメモリしかない場合に重要です。コマンドはサブプロセスで実行され、サブプロセスでシェル変数を割り当てることはメインシェルでは表示されません。(最近のBourneシェル)パイプ内のすべてのプロセスがメインシェルの直接の子である方法でパイプを作成し、右端のプログラムがシェルビルトインである場合、メインシェルによって実行されます。許可するために必要です。プログラムは、メインシェルのシェル変数を変更します。したがって、このバリアント(BTWが最速のバリアントである場合)でのみ、メインシェルが変数の割り当て結果を確認できます。ループは同じサブプロセスで実行されるため、シェル変数の変更バージョンを出力できます。現在、パイプラインコマンドのいずれかにゼロ以外の終了コードがあるかどうかに関する情報を取得するために、POSIXシェルにサポートを追加する要求があります。これを実現するには、パイプラインのすべてのプログラムがメインシェルの直接の子になるように、シェルを実装する必要があります。$valメインシェルで読み取りを実行するための要件のみが欠落しているため、予想されることを実行します。zshノードが見つかりません。