【发布时间】:2015-09-29 14:31:33
【问题描述】:
如何为每个命令(不包括 set、echo、log)添加时间戳到 bash 脚本日志?
我正在运行一个备份脚本并希望记录所有带有时间戳的命令:
#./svnbackup.sh 2&>1 | timestamp_xtrace > ./svn-backup.log 2>&1
这是我的功能,它不起作用:
timestamp_xtrace() {
while IFS= read -r line; do
if [[ "$line" =~ "^+ set" ]] && [[ "$line" =~ "^+ echo" ]] && [[ "$line" =~ "^+ log" ]]; then
echo "$(date) $line";
fi
done
}
我想排除一些命令(set、echo、log...)但它不起作用.. 有人有解决我问题的提示吗?
【问题讨论】:
-
那些
&&s不应该是||s吗? -
我建议使用
logger。 -
我想记录所有行,但行以“set”或“echo”或“log”开头。