bashで{標準,エラー}出力にタイムスタンプをつける
Feb 23, 2022 17:02 · 117 words · 1 minute read
スクリプトの先頭でこんな感じで exec をしておけばよい。
function addtimestamp() {
while IFS= read -r line; do
printf '%s %s\n' "[$(date +"%Y-%m-%d %H:%M:%S")]" "$line";
done
}
readonly scriptname=$(basename ${0%.sh})
exec 1> >(addtimestamp | tee -a "/tmp/$scriptname-stdout.log")
exec 2> >(addtimestamp | tee -a "/tmp/$scriptname-stderr.log")