免费注册 查看新帖 |

Chinaunix

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

Expect的输出问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-17 14:28 |只看该作者 |倒序浏览
我使用了perl的Expect模块写了一个自动输入命令的脚步,不过由于脚本里会和server端做一些命令的交互,server端会返回一些确认的信息,这些交互产生的信息就直接再屏幕上输出,有什么办法可以将这些输出不要再屏幕上显示扔到后台?先谢谢了

论坛徽章:
0
2 [报告]
发表于 2005-01-17 15:07 |只看该作者

Expect的输出问题

重定向标准输出

论坛徽章:
0
3 [报告]
发表于 2005-01-17 15:24 |只看该作者

Expect的输出问题

谢谢楼上回复,你是说再执行perl脚本的时候重定向标准输出?
有没有办法再脚本内部就作掉?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-01-17 19:56 |只看该作者

Expect的输出问题

可以...
.應該是這個吧..你得試試看...
$object->;log_stdout(0, 1, or undef)

看看下面網頁.....
http://search.cpan.org/~auschutz/Expect.pm-1.07/Expect.pod
真的Expect比Expect.pm複雜多了..

论坛徽章:
0
5 [报告]
发表于 2005-01-18 13:54 |只看该作者

Expect的输出问题

谢谢apile
在开头加上
$object->;log_stdout(0);
就可以了

论坛徽章:
0
6 [报告]
发表于 2005-01-25 22:12 |只看该作者

Expect的输出问题

[quote]原帖由 "bucciarati"]我使用了perl的Expect模块写了一个自动输入命令的脚步,不过由于脚本里会和server端做一些命令的交互,server端会返回一些确认的信息,这些交互产生的信息就直接再屏幕上输出,有什么办法可以将这些输出不要再屏幕上..........[/quote 发表:

能不能把你的程序贴出来,让我参考参考,谢谢!

论坛徽章:
0
7 [报告]
发表于 2005-01-26 09:28 |只看该作者

Expect的输出问题

use Net::Telnet更合适一些,expect是仿shell的实现

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-01-26 23:57 |只看该作者

Expect的输出问题

Expect有個好處..不管碰到什麼樣的login模式都可以用...
有時候需要連到Router上面去做事情...
而Net:Telnet只有一般的unix login 模式可以用...
比起Net::Telnet ,我還是比要喜歡用Expect...

论坛徽章:
0
9 [报告]
发表于 2005-01-27 09:35 |只看该作者

Expect的输出问题

原帖由 "apile" 发表:
Expect有個好處..不管碰到什麼樣的login模式都可以用...
有時候需要連到Router上面去做事情...
而Net:Telnet只有一般的unix login 模式可以用...
比起Net::Telnet ,我還是比要喜歡用Expect...


aplie,Net::Telnet可以实现几乎任何远程访问模式,包括telnet、ssh、ftp、smtp、pop、imap、ntp、http、https、uucp、rsh、gopher、finger等

可以选择或自定义传输的加密方式来匹配server端的规则,在cpan上search这个pm可以找到一个它的一个ftp实现

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2005-01-27 12:24 |只看该作者

Expect的输出问题

我碰到的網絡設備...有些不是login: password:
而是username: 或id:或passwd的...
用Net::Telnet沒辦法滿足...
我trace過他的source code..他匹配的..有時候跟網絡設備不一樣...
如下面...username/login
要事出來一個userid : 那就不能run了....


  1.     ## Wait for login prompt.
  2.     $self->;waitfor(Match =>; '/login[: ]*$/i',
  3.                    Match =>; '/username[: ]*$/i',
  4.                    Errmode =>; "return")
  5.         or do {
  6.             return &$error("eof read waiting for login prompt")
  7.                 if $self->;eof;
  8.             return &$error("timed-out waiting for login prompt");
  9.         };

  10.     ## Wait for password prompt.
  11.     $self->;waitfor(Match =>; '/password[: ]*$/i',
  12.                    Errmode =>; "return")
  13.         or do {
  14.             return &$error("eof read waiting for password prompt")
  15.                 if $self->;eof;
  16.             return &$error("timed-out waiting for password prompt");
  17.         };
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP