2
終了したサブコマンドにパイプするときに、bash whileループが終了しないのはなぜですか?
以下のコマンドが終了しないのはなぜですか?ループは終了するのではなく、無限に実行されます。 より複雑なセットアップを使用してこの動作を発見しましたが、コマンドの最も単純な形式は次のようになります。 終了しません: while /usr/bin/true ; do echo "ok" | cat ; done | exit 1 上記のタイプミスはありません。各「|」パイプです。「出口1」は、実行されて終了した別のプロセスを表します。 「exit 1」により、whileループ(リーダーのないパイプに書き込み)でSIGPIPEが発生し、ループが発生することが予想されます。しかし、ループは実行を続けます。 コマンドが停止しないのはなぜですか?