[解決済み] Bashでパイプ出力と終了ステータスをキャプチャする
2022-03-21 12:54:23
質問
Bashで長時間実行するコマンドを実行し、その終了状態をキャプチャしたい。 ティー の出力です。
そこで、私はこうしています。
command | tee out.txt
ST=$?
問題は、変数STが終了ステータスを捕捉するのは
tee
であり、コマンドのものではありません。どうすれば解決できますか?
なお、コマンドは長時間実行されるため、出力をファイルにリダイレクトして後で見るというのは、私にとっては良い解決策ではありません。
解決方法は?
Bashの内部変数に
$PIPESTATUS
これは、最後のフォアグラウンド・パイプラインのコマンドの各コマンドの終了ステータスを保持する配列です。
<command> | tee out.txt ; test ${PIPESTATUS[0]} -eq 0
また、他のシェル(zshなど)でも動作する別の方法として、pipefailを有効にすることができます。
set -o pipefail
...
最初のオプションは
ない
で動作します。
zsh
というのは、構文が少し違うからです。
関連
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashで標準出力と標準エラーの両方をファイルにリダイレクトして追記する方法
-
[解決済み] シェルコマンドの実行と出力のキャプチャ
-
[解決済み] 標準出力ではなく標準エラー出力にパイプを通すにはどうしたらいいですか?
-
[解決済み] Bashでコマンドの前に環境変数を設定すると、パイプ内の2番目のコマンドで動作しない
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】Bashスクリプトでクリップボードにパイプを接続する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ZIPエラー - 何もできない
-
[解決済み] 部分的にコピーされたファイルでscpを再開する方法は?[クローズド]です。
-
[解決済み] Docker ubuntu イメージ - bash: man: コマンドが見つかりません。
-
[解決済み] sed で二重引用符と単一引用符をエスケープするにはどうしたらいいですか?
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] シンタックスエラー」が発生しました。"(" unexpected' (expecting "done") [duplicate]".
-
[解決済み] bash スクリプトを実行している docker エントリポイントに "permission denied" が表示される。
-
[解決済み] "[0: コマンドが見つかりません]" in Bash [重複].
-
[解決済み] ターミナルでbashスクリプトを実行するにはどうすればよいですか?
-
[解決済み】コマンド出力をTeeにパイプしつつ、コマンドの終了コードを保存する【重複あり