2011-08-01 18 views
2

我正在嘗試構建一個簡單的日誌文件以及一個我一起入侵的運行腳本。有問題的線條看起來像下面這樣:在bash腳本中使用tee(在Solaris上)

TEE="/usr/bin/tee" 
TO_LOG="/usr/bin/tee >> $LOG_DIR/hosts.`date +%Y%m%d-%H%M%S`.log" 

那麼這兩個習慣是這樣的:

echo "something happened!" | $TO_LOG 

很不幸,這是做的唯一事情就是創建一個空提起我的CWD字面上命名>>。用bash -x運行這個腳本顯示了用append運算符獲得單引號的重定向 - 雖然我不確定這是否真的發生,或者如果這只是在交互式調試模式下被bash追加。

+ echo 'something happened!' 
+ /usr/bin/tee '>>' /backups/logs/mylog.20110801-182337.log 

回答

5

tee本身是用來做文件寫入的。我想你想:

/usr/bin/tee -a $LOG_DIR/hosts.`date +%Y%m%d-%H%M%S`.log 

-a選項使tee追加,而不是截斷,該文件(類似於如何>>追加而>截斷在大多數炮彈)。

1

這應該是你想要的...

TEE="/usr/bin/tee" 
LOG="$LOG_DIR/hosts.$(date +'%Y%m%d-%H%M%S').log" 
to_log() { 
    $TEE -a $LOG 
} 

echo "test" | to_log