2

我正在尝试构建一个简单的日志文件以及我一起破解的运行脚本。有问题的行如下所示:

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显示带有附加运算符的重定向得到单引号 - 尽管我不确定这是否真的发生了,或者是否只是由 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追加而不是截断文件(类似于在大多数 shell 中>>追加而截断的方式)。>

于 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 回答