次のように多くの出力を生成する長いコマンドを実行するビルドスクリプトがあります。
./compile
ts
コンパイルパフォーマンスの問題を解決するには、次のものを使用したいと思います。その他のユーティリティ)各出力行の前にタイムスタンプが付きます。だから私はスクリプトを次のように更新しました。
bash -c "./compile | ts '[%Y-%m-%d %H:%M:%S]'"
これは機能しますが、終了値は常に失敗した場合の0
イベントです(終了時にエラーがないcompile
ため)。ts
compile
使用時に終了コードを返すようにスクリプトをどのように更新しますかts
?
ベストアンサー1
Bashを使用しているので、$PIPESTATUS
パイプラインのコマンドのさまざまな終了コードを含む配列であるこれを使用できます。
bash -c './compile | ts "[%Y-%m-%d %H:%M:%S]"; exit "${PIPESTATUS[0]}"'
zsh
同様の機能がありますが、代わりに$pipestatus
配列を使用します(代わりに配列にzsh
番号が付けられていることに注意してください)。1
0