我正在写bash logger,它记录脚本的每一行。
我有这个:
exec > >(tee $LOG) 2>&1
trap "echo 'ERROR: An error occurred during execution, check log $LOGFILE for details.' >&3" ERR
trap '{ set +x; } 2>/dev/null; echo -n "$(date '+[%Y-%m-%d][%H:%M:%S]') "; set -x' DEBUG
字符串
但问题是,日志文件很好(时间戳,命令,输出)。但我更希望终端中没有时间戳和命令。
有没有一种方法可以只将输出打印到终端,而将所有内容都打印到文件中?我不确定这是否可能与执行命令或我需要不同的方法。
1条答案
按热度按时间c7rzv4ha1#
您可以通过设置
BASH_XTRACEFD
将跟踪重定向到不同的流,并且可以通过设置PS4
为日期添加前缀。因此,创建一个直接写入日志文件的流,并将其用于命令跟踪。和tee
您的输出使用--append
选项,到同一个文件。字符串