免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4130 | 回复: 6
打印 上一主题 下一主题

请教:在Perl里调用系统命令时,如何关闭系统命令的打印输出? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-27 11:33 |只看该作者 |倒序浏览
本帖最后由 detective0922 于 2011-06-27 11:38 编辑

大家好,请教大家一个问题,在Perl里调用系统命令时,如何关闭系统命令的打印输出?
比如:
        foreach $b (1..250){
                $ip="192.9.".$a.".".$b;
                system "ping -n 1 $ip";
        }
        print "192.9.".$a."0-250 is ok";
运行这个的时候,会打印出很多ping命令本身的返回信息,如:
Reply from 192.9.15.1: bytes=32 time<1ms TTL=128

Ping statistics for 192.9.15.1:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

但我不想看到这些,不知道有没有办法关闭它?
在Solaris上比较方便,直接>/dev/null就行,但windows上不知道怎么处理,所以请教下大家,谢谢大家先~

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
2 [报告]
发表于 2011-06-27 11:39 |只看该作者
你下次可以发到 shell 区去。。。。。你直接 &> /dev/null 给 shell 的标准输出和标准错误都重定向到 null 就好了

论坛徽章:
0
3 [报告]
发表于 2011-06-27 11:43 |只看该作者
shell我知道,我需要的是windows下的。不过已经知道了,windows下也可以>null
谢谢楼上的,呵呵~

论坛徽章:
0
4 [报告]
发表于 2011-07-15 09:13 |只看该作者
回复 3# detective0922


    具体咋实现的啊,我也需要解决这个问题

论坛徽章:
0
5 [报告]
发表于 2011-07-15 11:35 |只看该作者
回复 4# scrit


    应该是把system里面的“ping -n 1 $ip” 改成 “ping -n 1 $ip &> null”。
或者把system("ping -n 1 $ip"); 改成`ping -n 1 $ip`;

论坛徽章:
1
狮子座
日期:2013-12-16 16:09:24
6 [报告]
发表于 2011-07-15 12:56 |只看该作者
unix 下的 /dev/null = win 下的 NUL

论坛徽章:
0
7 [报告]
发表于 2011-07-15 14:52 |只看该作者
使用 $tmpvar=`you cmd`
这样输出被赋给变量了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP