我有以下bash命令腳本輸出到標準輸出和日誌文件。它的工作原理,我可以看到實時輸出。但日期並未改變。有什麼方法可以指示exec以動態的方式評估日期。bash腳本輸出到文件和標準輸出不更新時間戳
#!/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'運行*一次* - 您不希望它是其他方式;調用外部工具的速度非常慢,所以如果你的內容快速運行,日誌過程不一定會跟上。 –