GNU/Linux >> Linux の 問題 >  >> Linux

出口値を失うことなくTsを使用しますか?

この質問にはすでに回答があります :別のプロセスにパイプされているプロセスの終了ステータスを取得します

(16の回答)
昨年終了しました。

次のような大量の出力を生成する長いコマンドを実行するビルドスクリプトがあります:

./compile

コンパイルパフォーマンスのトラブルシューティングを行うために、tsを使用したいと思います (moreutilsから)各出力行の前にタイムスタンプを付けます。そこで、スクリプトを次のように更新しました:

bash -c "./compile | ts '[%Y-%m-%d %H:%M:%S]'"

これは機能しますが、終了値は常にになります 、compile時のイベント 失敗します(tsのため、 エラーなしで終了します。

スクリプトを更新してcompileを返すにはどうすればよいですか。 tsの使用中のの終了コード ?

承認された回答:

Bashを使用しているので、その$PIPESTATUSを使用できます。 これは、パイプライン内のコマンドからのさまざまな終了コードを含む配列です:

bash -c './compile | ts "[%Y-%m-%d %H:%M:%S]"; exit "${PIPESTATUS[0]}"'

zsh 同様の機能がありますが、$pipestatusを使用します 代わりに配列(zshも覚えておいてください 配列には1から番号が付けられます 、ではありません 。


Linux
  1. 「exit」と入力せずに「画面」から出るにはどうすればよいですか?

  2. bashでkill SIGUSR2を使用するには?

  3. 一致を印刷せずに、一致するようにgrepを使用するにはどうすればよいですか?

  1. --privileged なしで docker コンテナー内で perf を使用する

  2. システム全体にインストールせずにコマンド (tree など) を使用できますか?

  3. tar コマンドを使用して、圧縮せずにファイルをグループ化するにはどうすればよいですか?

  1. ディスクを破壊せずにLinuxでddを使用する方法

  2. 再起動せずに 70-persistent-net.rules を再生成する方法は?

  3. sftp を壊さずに .bashrc を使用する