在bash脚本中使用tee(在Solaris上)

ran*_*its 2 bash solaris tee

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

TEE="/usr/bin/tee"
TO_LOG="/usr/bin/tee >> $LOG_DIR/hosts.`date +%Y%m%d-%H%M%S`.log"
Run Code Online (Sandbox Code Playgroud)

那么这两个就像这样使用:

echo "something happened!" | $TO_LOG
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是唯一要做的就是>>在我的CWD中创建一个字面命名的空字段.运行此脚本会bash -x显示带有追加操作符的重定向获取单引号 - 虽然我不确定这是否真的发生了,或者是否只是在交互式调试模式下被bash追加.

+ echo 'something happened!'
+ /usr/bin/tee '>>' /backups/logs/mylog.20110801-182337.log
Run Code Online (Sandbox Code Playgroud)

Jer*_*man 5

tee本身就是为了写文件.我想你想要:

/usr/bin/tee -a $LOG_DIR/hosts.`date +%Y%m%d-%H%M%S`.log
Run Code Online (Sandbox Code Playgroud)

-a选项导致tee附加而不是截断文件(类似于如何>>附加而>在大多数shell中截断).