私の問題があまり具体的でないことを願っています...
別のコマンドにパイプされたコマンドの終了コードを返す方法については、多くの質問と回答がありますが、私の場合は少し異なります...
出力をシンタックスカラーリングスクリプトにパイプする汎用コマンドがあります。このコマンドは、LSF の bsub を介して実行されます。このようなもの:
bsub <switches> "command | colorize"
コマンドがゼロ以外の終了値を返すとします。colorize コマンドにより、bsub はゼロの終了値を返しています。
配管しないと--
bsub <switches> "command"
終了値は、コマンドからのゼロ以外の正しい値です。
パイプでゼロ以外の値を取得する方法はありますか?
完全な開示のために、この bsub は実際には perl の system() 呼び出しを介して呼び出されています。bsub がゼロ以外を返す限り、システム コールはゼロ以外を返す必要があり、すべて問題ありません。
$PIPESTATUS 経由でパイプされたコマンドから終了コードを取得する方法を調べましたが、1) シェルではなく perl から実行しており、2) bsub かどうかわからないため、この場合は機能しないと思います。それを返します。