0

我正在通过 shell 脚本运行应用程序。我希望控制台日志被重定向到一个文件,但仅在启动期间(比如前 10 分钟)。之后我不想将日志写入文件?

这可以实现吗?

4

1 回答 1

1

如果你可以使用perl,这个单行应该做到这一点:

command | perl -pe '
  BEGIN { open(LOG, ">log") || die $!; select LOG; $|=1; $end=time+1 }
  select STDOUT if (time>=$end)'

perl -pe告诉 Perl 在循环中将标准输入的行回显到选定的输出。该BEGIN块在循环开始之前打开日志文件(无缓冲,因此您可以在文件中看到消息而无需等待缓冲区填满),选择它作为输出并将结束时间设置为从现在开始的十分钟(600 秒) . 然后执行简单地在初始周期之前打印到日志文件,然后打印到标准输出。

于 2013-09-12T17:36:32.237 回答