如何将 “Expect” 输出的结果进行保存?
时间:2010-09-29
来源:互联网
需求:
公司交换机比较多,为了安全,做了IP绑定,所以想写个perl脚本自动登录到交换机,然后进行IP绑定操作。
问题:
目前可以自动登录到交换机,问题是在交换机上执行命令后输出的结果如何赋值,因为要用到输出结果中的某个值。
代码如下:
复制代码
请问如何将“$exp->send("display mac-address interface Ethernet1/0/2\n");” 输出值进行保存呢? 谢谢!
公司交换机比较多,为了安全,做了IP绑定,所以想写个perl脚本自动登录到交换机,然后进行IP绑定操作。
问题:
目前可以自动登录到交换机,问题是在交换机上执行命令后输出的结果如何赋值,因为要用到输出结果中的某个值。
代码如下:
- #!/usr/bin/perl
-
- use strict;
- use warnings;
- use Expect;
-
-
- my $host = "192.168.x.xx";
- my $passwd = "xxxx";
-
-
- my $exp = new Expect;
- #$exp->debug(3);
-
- my $command = "telnet $host";
- $exp->spawn($command) or die "Cannot spawn $command: $!\n";
-
- my $pass = $exp->expect( 6, 'Password' );
- $exp->send("$passwd\n") if ($pass);
-
- my $admin_mode = $exp->expect( 6, 'login' );
- $exp->send("sys\n") if ($admin_mode);
-
- $exp->send("display mac-address interface Ethernet1/0/2\n");
-
-
- $exp->send("quit\n");
- $exp->send("quit\n");
-
- $exp->interact();
作者: huifeideluotuo 发布时间: 2010-09-29
我会用这种方法, 你试试看呢
复制代码
- $exp->send("display mac-address interface Ethernet1/0/2\n");
-
- $exp->expect( 35, undef );
- my @line = $exp->before();
- print @line;
-
-
-
-
-
- $exp->send("quit\n");
-
- $exp->send("quit\n");
-
-
-
- $exp->interact();
作者: scrit 发布时间: 2010-09-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28