標準エラーへの書き込み

Bash:
標準エラーへの書き込み

方法:

Bashでは、>&2 を使用して出力をstderrにリダイレクトします。基本的な例を以下に示します:

echo "This is a normal message"
echo "This is an error message" >&2

このスクリプトを実行すると、両方のメッセージがコンソールに表示されますが、リダイレクトすると、stdoutとstderrを分離できます。例えば:

bash script.sh > output.txt 2> error.txt

output.txt"This is a normal message"を含み、error.txt"This is an error message"をキャプチャします。

実用的な使用例として、ファイルを処理し、ファイルが存在しない場合にエラーを報告するスクリプトを考えてみましょう:

filename="example.txt"

if [ ! -f "$filename" ]; then
    echo "$filename does not exist!" >&2
    exit 1
else
    echo "Processing $filename"
fi

example.txtが存在しない場合、コンソールでのサンプル出力は以下の通りです:

example.txt does not exist!

Bashではstderrを処理するための直接のサードパーティーライブラリはありませんが、リダイレクションはネイティブにサポートされており、一般的には十分です。しかし、複雑なアプリケーションの場合、sysloglog4bashのようなログフレームワークや外部ログツールを組み込んで、stdoutとstderrをより効果的に管理することができます。