2013-03-26 76 views
0

您好我需要在文件和STDOUT都有perl脚本的输出,但我不能重定向输出像./a.pl > out.log。可能吗?写入文件和标准输出从Perl脚本

+0

为什么你需要它去标准输出?有人会观看该视频,还是正在重定向? – 2013-03-26 13:29:27

+0

@sputnick,这个问题的简单答案是[man tee](http://www.openbsd.org/cgi-bin/man.cgi?query=tee)。 Gayane使用了unix命令行,并没有引用任何其他操作系统。你的链接甚至没有提到T恤。 – 2013-03-26 13:32:47

+0

@JulianFondren我不同意,OP似乎说他没有控制命令行 – 2013-03-26 13:34:28

回答

4

显然,你应该使用

./a.pl | tee out.log 

,但它听起来就像你会拒绝。下一个最好的可能是File::Tee

use File::Tee qw(tee); 
tee(STDOUT, '>', 'out.log'); 
2

试试这个:

a.pl | tee out.log

+0

实际上脚本是由其他人运行,我不能强迫它以其他方式调用它。所以我需要做一些脚本(重定向/保存标准输出或其他) – Gayane 2013-03-26 13:33:13

+0

@Gayane,所以你说你比你的用户知道他们想要的更好。你不应该强迫你的用户做任何事情。 – ikegami 2013-03-26 13:35:24

+0

他们希望在日志和STDOUT中都有输出。但是他们不想重定向shell的输出 – Gayane 2013-03-26 13:36:59