2

一緒にハッキングした実行中のスクリプトと一緒に単純なログ ファイルを作成しようとしています。問題の行は次のようになります。

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

次に、これら2つは次のように使用されます。

echo "something happened!" | $TO_LOG

>>残念ながら、これが行っている唯一のことは、私の CWD で文字通り名前が付けられた空のフィールドを作成することです。このスクリプトを実行bash -xすると、追加演算子が一重引用符で囲まれたリダイレクトが表示されますが、それが文字通り起こっているのか、それとも対話型デバッグ モードで bash によって追加されているだけなのかはわかりません。

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

2 に答える 2

5

teeそれ自体は、ファイルの書き込みを行うことを目的としています。私はあなたが欲しいと思います:

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

この-aオプションはtee、ファイルを切り捨てるのではなく、追加します (ほとんどのシェルで切り捨てながら>>追加する方法に似ています)。>

于 2011-08-01T18:28:10.270 に答える
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
于 2011-08-01T18:33:13.583 に答える