我想将我的所有标准输出和错误转发到一个记录器脚本,该脚本使用一些额外的信息(例如 dateTime)记录它们,并且脚本导致了错误。经过一番谷歌搜索后,我终于以这种方式编写了我的 bash 程序:我在主脚本中添加了这两行:
exec 1> >(xargs ./doLog)
exec 2> >(xargs ./doLog)
./doLog 有点像这样:
if [ -n $1 ]
then
echo -n "Jaky: `date`: $@ " >> $Log_File
fi
因此,它从 1> 和 2> 获取每个输入并将其回显到我的日志文件中。问题是由于某种原因我需要将 doLog 脚本转换为执行相同结果的函数。但我不知道如何将 exec 1 和 2 的输入传递给函数。我尝试了 xargs 和其他文件描述符,但我无法得到结果。
另一个问题是传递给 doLog 的日志不包含行尾字符,因此所有输出看起来都相互连接。请帮忙。