bashスクリプトのログに日付をつける(プロセス置換機能)
プロセスをあたかもファイルのように扱える。
こんな機能があったなんて!
bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する
http://sechiro.hatenablog.com/entries/2013/08/15/
shell scriptはバッチでたまに書いたりするくらいだけど、
どんな区切りで時間を出そうか悩まなくていいし、簡潔になるねー。
#!/bin/bash BASEDIR="$(cd $(dirname $0) && pwd)" LOGFILE="$BASEDIR/`date +\"%Y%m%d%H%M%S\"`.log" # redirect stdout/stderr to tee to write the log file exec 1> >( awk ' { cmd ="date +\"%Y-%m-%d %H:%M:%S \"" cmd | getline now close("date +\"%Y-%m-%d %H:%M:%S \"") sub(/^/, now) print fflush() }' | tee "${LOGFILE}") 2>&1
目からうろこ!
ちょっとした場面で使えるところが出てくる気がする。