【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」オプションはファイルに対する追記の指示になる。

つまりリダイレクトの「>>」と同じ。

オプションなしだと新規書込みになる。これはリダイレクトの「>」と同じ。