所以我想做一些日志记录,因此,想在 bash 脚本的输出前面放一个日期。问题是它有多行输出。我只能将日期放在整个输出之前。但是后来我在日志中有一行没有日期。当然,我可以假设上一行的日期是相同的,但我希望有一个解决方案。提前致谢!
这是我调用另一个脚本的脚本:
#!/bin/sh
echo $(date "+%F %T") : starting script
echo $(date "+%F %T") : $(./script.sh)
echo $(date "+%F %T") :script ended
Run Code Online (Sandbox Code Playgroud)
这是输出:
2012-07-26 15:34:12 : starting script
2012-07-26 15:35:14 : First line of output
second line of output
2012-07-26 15:35:17 : script ended
Run Code Online (Sandbox Code Playgroud)
这就是我想要的:
2012-07-26 15:34:12 : starting script
2012-07-26 15:35:14 : First line of output
2012-07-26 15:35:15 : second line of output
2012-07-26 15:35:17 : script ended
Run Code Online (Sandbox Code Playgroud)
根据Stack Overflow 上的一个类似问题,有 2 个不错的选择。
<command> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
Run Code Online (Sandbox Code Playgroud)
annotate是一个小的 bash 脚本,可以通过此处提供的链接直接获取,或者在基于 Debian 的系统上,通过包devscripts
(以 的形式annotate-output
)获取。