シェルスクリプト-ログファイルの作成
ファイルへログを出力する。
ログファイルの作成
現在ディレクトリに「setup_YYYYMMDDhhmm.log"」というファイルを作成する場合、以下のように記述します。
CURRENT_DIR=$(cd "$(dirname "$(readlink -f "${0}" || echo "${0}")")"; pwd -P)
LOG_FILE="${CURRENT_DIR}/setup_$(date +%Y%m%d%H%M).log"
ログ出力
標準出力と標準エラー出力を共に書き込むには「2>&1」を指定します。
command >> "${LOG_FILE}" 2>&1
上記の場合、出力は全てファイルに吐かれます。ファイルにもコンソール上にも出力したい場合、teeコマンドを用いることが一般的です。
command 2>&1 | tee -a "${LOG_FILE}"
コマンドによっては、ログを出力したくない場合もありますので、その場合/dev/nullに出力することでコンソール上に出力させないようにします。
command > /dev/null 2>&1
エラー確認
エラー内容を確認したい場合は、grepコマンドが便利です。
grep -E "Error|error|Err" "${LOG_FILE}"
なお、エラーメッセージとして、echoに「Error」などの識別子を付ける必要があります。
if [ $? -ne 0 ]; then
echo "[Error] Unable to delete ${TARGET_DIR}"
return 1
fi