Bash で stderr にエコー
デフォルトのエラー メッセージ変数の組み込み Bash スクリプトは、stderr
として知られています。 これは標準エラーとも呼ばれ、エラーのデフォルトの出力デバイスです。
場合によっては、エラーを出力チャネルにリダイレクトする必要があります。 Linux 環境は、FD
として知られる説明ですべてのファイル オブジェクトを識別します。
開いているファイル セッションを識別する正の整数値です。 stderr
の場合、ファイル記述子の値は 2
です。
この記事では、stderr
とその機能について学習します。 また、トピックを簡単にするいくつかの例を見ていきます。
Bash で stderr
にエコーする
コマンド stderr
は、主にコマンドの実行中にエラーの再コードを保持するために使用されます。 このコマンドの一般的な構文は次のとおりです。
Your command here 2>error.log
上記のサンプル構文では、シンボル 2>
と error.log
という名前のファイルを見つけることができます。 2>
は FILE DESCRIPTOR
の値を示し、これは stderr
の ID を表します。
この場合、FILE DESCRIPTOR
の値は 2
です。 ここで指定したファイル名は、コマンドの実行中に生成されるログ ファイル用です。
以下の構文フォーマットに従って、stderr
メッセージを echo
することもできます。
Your command here >&2 echo "error"
トピックを簡単にするために例を見てみましょう。 エラー コマンドを作成し、出力エラー メッセージを echo
したいとします。
サンプルコードは次のようになります。
echo $( 3 + 2 )) >&2 echo "error"
上記のコードでは、その動作を理解するために意図的にエラーを作成しています。 ここではブラケットの 1つを削除したため、エラーになる可能性があります。
その後、echo
でそのエラーを表示します。 上記のコードを実行すると、以下のような出力が表示されます。
./example.sh: line 1: syntax error near unexpected token `)'
./example.sh: line 1: `echo $( 3 + 2 )) >&2 echo "error" '
以下のようにコードを修正し、コマンドを再度実行します。
echo $(( 3 + 2 )) >&2 "No error has been found."
コードを実行すると、以下のような出力が得られます。
5 No error has been found.
この記事で使用するコードはすべて Bash で記述されています。 Linux シェル環境でのみ動作します。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn