DESIGN / CODE / INFRA / AI

解説

エラーの文字はどこへ出る?標準出力と標準エラーを別ファイルで見よう

コマンドの表示をファイルへ保存したのに、エラーらしい文字だけ画面に残った。プログラムの文字の出口には、標準出力と標準エラーという別の流れがあるよ。

エラーの文字はどこへ出る?標準出力と標準エラーを別ファイルで見よう
保存リストを見る →
この記事の道しるべ 5項目

コマンドの表示をファイルへ保存したのに、エラーらしい文字だけ画面に残った。プログラムの文字の出口には、標準出力と標準エラーという別の流れがあるよ。

この記事ではBashで二つを分けて保存する。練習用の新しいフォルダーだけを使い、実際のログや秘密情報を扱わない。ファイルへの「>」は同名の内容を上書きするので、既存ファイルがない場所で試そう。

内容と状態を分けて考える

標準出力は通常の結果、標準エラーは診断などのメッセージに使われることが多い。ただし、どちらへ何を出すかはプログラムの実装によるよ。

標準エラーへ文字が出たことと、終了コードが失敗を示すことも同じではない。文字の流れと処理の成功・失敗は、別に確認する。

練習用の二つの表示

mkdir output-practice
cd output-practice
bash -c 'printf "result\n"; printf "notice\n" >&2' >out.log 2>err.log
cat out.log
cat err.log

out.logにはresult、err.logにはnoticeが入る。ここで使う子Bashは、通常のprintfの結果と、>&2で標準エラーへ向けたprintfの結果を出すだけ。実際の障害を起こしているわけではないよ。

指定 この例の行き先
>out.log 標準出力をout.logへ
2>err.log 標準エラーをerr.logへ
>&2 その表示を標準エラーへ

数字の2は標準エラーの番号。この練習では、二つのファイルへ想定どおり分かれることを実行して確認した。

保存したから、すべての情報があるとは限らない

標準出力だけを保存すると、診断が別の場所に出ている場合がある。逆に、別の専用ログへ記録するアプリもあるので、出力先の仕様を確認しよう。

表示された文字にAPIキーや個人情報が含まれる場合、そのまま共有しない。必要な部分を確認し、秘密値を取り除いてから問い合わせに使う。

上書きと追記を間違えない

「>>」は追記に使うけれど、追記にすれば何でも安全という意味ではない。古い結果が混ざると今回の状態を読み違えることもある。目的に合うファイル名と保存方法を決めよう。

数値の状態は終了コードの基本、表示の引用符はBashの一重・二重引用符へ。

参照した公式資料

確認日:2026年10月24日。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。