【发布时间】:2017-09-26 15:36:25
【问题描述】:
我有以下 bash 命令将脚本输出到标准输出和日志文件。它有效,我可以看到实时输出。但是日期没有改变。有什么方法可以指示 exec 以动态方式评估日期。
#!/bin/bash
LOGFILE="/tmp/te/script.log"
exec 1> >( stdbuf -e 0 -o 0 sed "s/^/$(date '+[%F %T]'): /" | tee -a ${LOGFILE}) 2>&1
echo "Started"
sleep 2
echo "Done sleeping"
sleep 2
echo "Another sleep"
sleep 2
echo "Done"
谢谢
【问题讨论】:
-
完全可以预料。
sed被启动一次,date被运行一次——你不希望它以任何其他方式运行;调用外部工具非常慢,因此如果您有快速运行的内容,日志过程不一定能跟上。
标签: bash