RM-BLOG

IT系技術職のおっさんがIT技術とかライブとか日常とか雑多に語るブログです。* 本ブログに書かれている内容は個人の意見・感想であり、特定の組織に属するものではありません。/All opinions are my own.*

【UNIX】teeコマンド

標準出力の内容を同時にファイルにも書きだすコマンドとして「tee」ってのがある。
標準出力+ログファイルに同じ情報を挙げたいという場合に便利。
例えば
log_file=./test.log

log_date="`date +%Y/%m/%d' '%H:%M:%S`"
echo "${log_date} test start"			←①
echo "${log_date} test start"  >> ${log_file}	←②

…(なんか処理)…

ってやると①と②で同じ処理を2行に渡って書かなければならない。
①は標準出力用で②はログ出力用。
これを、tee使うことで1行で(同時に)実行できる。
log_file=./test.log

log_date="`date +%Y/%m/%d' '%H:%M:%S`"
echo "${log_date} test start"  | tee -a ${log_file}

…(なんか処理)…

こんな感じ。

teeの「-a」オプションはファイルに対する追記の指示になる。
つまりリダイレクトの「>>」と同じ。
オプションなしだと新規書込みになる。これはリダイレクトの「>」と同じ。