Menu
Coddy logo textTech

標準エラー

CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 41/82。

3 番目かつ最後のデータストリームは 標準エラー で、stderr と略されます。このストリームは、エラーメッセージと警告専用で、それらを通常の出力から分離して保持します。

コマンドが失敗すると、エラーメッセージは標準出力ではなく標準エラーに送られます:

ls nonexistent_folder

表示されるエラーメッセージは stderr を通じて出力されます。この分離は重要です。なぜなら、エラーを通常の出力から独立してリダイレクトできるからです。

標準エラーをリダイレクトするには、2>> の代わりに使用します:

ls nonexistent_folder 2> errors.txt

2 は stderr のファイルディスクリプタ番号を指します(stdout は 1、stderr は 2)。このコマンドはエラーメッセージを errors.txt にキャプチャし、ターミナルをクリーンに保ちます。

両方のストリームを異なるファイルにリダイレクトできます:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

正常な出力は output.txt に送られ、すべてのエラーは errors.txt に送られます。両方のストリームを同じファイルに送るには、2>&1 を使用します:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

これにより、stderr を stdout の出力先にリダイレクトし、すべてを1つのファイルに結合します。

challenge icon

チャレンジ

簡単

2> 演算子を使用して、エラーメッセージをファイルにリダイレクトします。以下の2つのコマンドを順番に実行します:

  1. ls を使って missing_folder という名前のフォルダをリストしようとし、エラーメッセージを errors.txt という名前のファイルにリダイレクトします
  2. cat を使って errors.txt の内容を表示します

ヒント: 形式は ls foldername 2> filename です。エラーメッセージは画面に表示される代わりにファイルに入ります。cat を使ってキャプチャされたことを確認してください。

チートシート

標準エラー ストリーム(stderr)は、エラーメッセージと警告に使用され、通常の出力から分離して保持します。

標準エラーをリダイレクトするには、2> を使用します:

ls nonexistent_folder 2> errors.txt

2 は stderr のファイルディスクリプタ番号を指します(stdout は 1、stderr は 2)。

stdout と stderr の両方を異なるファイルにリダイレクトできます:

ls existing_folder nonexistent_folder > output.txt 2> errors.txt

両方のストリームを同じファイルに送信するには、2>&1 を使用します:

ls existing_folder nonexistent_folder > all_output.txt 2>&1

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン