免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: brantc
打印 上一主题 下一主题

[求助]如果一条print语句就可以把内容写在标准输出显示同时写入打开的文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-06 14:39 |显示全部楼层 |倒序浏览
如题。

我的情况是:
1. 需要在标准输出打印
2. 同时需要把在标准输出打印的东西写入一个日志文件。

有没有一条语句就可以搞定啊?
不然我总是print STDOUT "SDFADF" 然后又要写一次 print MY_LOG “SDFADF”

谢谢!

我曾尝试了:
1. 先备份STDOUT/STDERR
2. 重定向STDOUT/STDERR到我的日志文件
3. 现在就可以直接print到我的日志文件,但是此时STDOUT/STDERR在终端就没有东西显示了,郁闷。。。

论坛徽章:
0
2 [报告]
发表于 2011-09-06 15:22 |显示全部楼层
本帖最后由 brantc 于 2011-09-06 15:29 编辑

回复 2# zhlong8


    .....  xkdcc是我原来注册过忘了的,昨天不小心登陆进来发了第一贴,然后用brant登陆进来就找不到发的帖子了,不知道怎么没有了。。。
    难度我发错了?
请斑竹指教。。。。

论坛徽章:
0
3 [报告]
发表于 2011-09-06 15:23 |显示全部楼层
回复 3# Kitaisky


    感谢!我来man下!

论坛徽章:
0
4 [报告]
发表于 2011-09-06 16:54 |显示全部楼层
那个被系统当垃圾贴给删除了,已经给你恢复。CU 的反垃圾系统对发贴量极少的 ID 很严格而且还有点 ...
zhlong8 发表于 2011-09-06 15:30



    o(╯□╰)o

论坛徽章:
0
5 [报告]
发表于 2011-09-06 16:57 |显示全部楼层
将几个句柄打包成个对象,再定义个 report 方法就可以 $fh->report("SFADF"); 这样用了
zhlong8 发表于 2011-09-06 15:41



    嗯,,,,斑竹,我perl的面向对象编程是0经验,可否简单点?或者给我show 几句示例代码嘛?
    真的非常感谢啦~~

论坛徽章:
0
6 [报告]
发表于 2011-09-06 17:20 |显示全部楼层
回复  brantc


    # from Perl
  use Tee;
Kitaisky 发表于 2011-09-06 15:37



    我系统不能安装额外的perl模块,所以不能用CPAN的Tee了。。。

论坛徽章:
0
7 [报告]
发表于 2011-09-08 10:59 |显示全部楼层
sub LOGprint{
     print STDOUT "@_";
     print MY_LOG "@_";
   }

   LOGprint "my me ...
jason680 发表于 2011-09-06 17:43



    。。。。感谢!

但是我还有个问题,想不到好的办法:

因为我想把我在perl 里面执行system()的标准输出和标准错误输出都打印进入我的日志文件和终端,貌似不能两全。
我如果这样写: system("ls > $mylog 2>&1"),那终端就看不到错误输出(如果有的话);
我如果。。。。。

咦!有了,我可以试下在system里面使用tee,待我试试:)

论坛徽章:
0
8 [报告]
发表于 2011-09-08 12:52 |显示全部楼层
看来你就好好写你的shell script就好了.
(没看到你用到Perl的地方...)
jason680 发表于 2011-09-08 11:10



    您说得太对了。。。。

论坛徽章:
0
9 [报告]
发表于 2011-09-08 12:55 |显示全部楼层
回复  brantc


    你可以先看一下书吗?
Perl_Er 发表于 2011-09-08 12:11



    o(╯□╰)o我在看书的。。。但是问题比较急,所以只好发帖借大家的智慧了,惭愧了。。。

论坛徽章:
0
10 [报告]
发表于 2011-09-08 14:15 |显示全部楼层
本帖最后由 brantc 于 2011-09-08 14:17 编辑
回复  jason680


    FAQs里面有你这个问题的答案
Perl_Er 发表于 2011-09-08 13:14



    perl faq5?。。。How do I print to more than one file at once?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP