【发布时间】:2015-10-21 23:30:00
【问题描述】:
我有 2 个日志函数:
log_msg()
{
if [ ! -e $LOG_FILE ]; then
touch $LOG_FILE
chmod 0640 $LOG_FILE
fi
echo "$(date +'[%Y-%m-%d %T]') $1" >> $LOG_FILE
}
log_stream()
{
while read data; do
printf "$(date +'[%Y-%m-%d %T]') $data" >> $LOG_FILE
done
}
为了记录味精:
log_msg "Hello World!";
为了记录我尝试做的另一个函数的标准输出:
bgcommand --a --b 2>&1 > log_stream &
但它不起作用。
我在这个问题上找到了记录管道的功能: Pipe output to bash function 但是缺少一些东西。
【问题讨论】:
-
如果你使用
bash4.2,你可以避免使用printf '%([%Y-%m-%d %T])T %s\n" "$1"调用date。