我正在通过shell脚本运行应用程序。 我希望将控制台日志重定向到文件,但仅在启动期间(例如前10分钟)。之后,我不希望将日志写入文件?
这可以实现吗?
答案 0 :(得分: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秒)从现在起。然后执行只是在初始阶段之前打印到日志文件,然后打印到标准输出。