0

我正在尝试将脚本所做的更改记录到日志文件中。在非常高的级别上,我的脚本具有功能,我希望能够将该信息记录到文件中。我使用了“tee -a”,但这以多种方式破坏了功能。

有没有简单的方法来完成这个任务?

更新:更正了下面的错字

函数 1(){ ... }
函数 2(){ ... }
#主要的
功能1 | tee -a /tmp/日志文件
功能2 | tee -a /tmp/日志文件
4

1 回答 1

1

(编辑以反映问题编辑)您可以将 tee 合并到函数定义中:

function() { { ...<original function definition goes here>; } | tee -a output; }

所以你不需要每次调用函数时都调用 tee 。显然,如果函数修改了文件描述符,您将需要做更多的工作。另外,请记住,这会改变缓冲。如果从函数 1 中调用的命令的标准输出有一个 tty,他们可能会对其输出进行行缓冲,但如果他们的标准输出是管道(如果您正在管道传输到tee),则输出将被块缓冲。这可能是您所看到的差异的根本原因。此外,这只捕获一个文件描述符的输出。也许您有写入 stderr 的命令。您将需要提供有关 tee 管道更改脚本行为方式的更多详细信息。

于 2013-02-21T17:48:04.953 回答