Bash で stderr にエコー

MD Aminul Islam 2023年6月20日
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 シェル環境でのみ動作します。

著者: MD Aminul Islam
MD Aminul Islam avatar MD Aminul Islam avatar

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

関連記事 - Bash Echo