`

Perl Expect模块

 
阅读更多

ExpectUnix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet、ftp、Passwd、fsck、rlogin、tip、ssh等等.该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中.

 

当然Perl也集成了Expect模块

my $exp = Expect->new;
      $exp = Expect->spawn("command");
      $exp->expect(2, [
                      'password',
                      sub {
                           my $self_scp = shift;
                                 $self_scp->send("$pass\n");
                          }
                      ],
                      [
                      '\(yes/no\)?',
                      sub {
                           my $self = shift;
                                 $self->send("yes\n");
                                  exp_continue;
                          }
                      ],
                   );
       $exp->send("exit\n")  if ($exp->expect(undef,'#'));

 

上述是一个简单的Expext示例.

command填写要触发的执行命令

password 和 \(yes/no\)?可理解为匹配的正则

$pass与yes均为正则匹配后自动输入的字符(必须跟\n)

分享到:
评论

相关推荐

    Perl Expect参考手册(英文)

    Perl Expect 模块是 Perl 的一个扩展,用于自动化交互式程序的测试与管理。通过模拟键盘输入,它能够控制那些需要人工干预的应用程序或脚本。这使得用户能够在没有人为干预的情况下执行复杂的任务,例如远程系统管理...

    Expect and using Expect with PERL

    **Expect.pm** 是Perl的一个模块,它可以让你在Perl程序中使用Expect的功能。通过这个模块,可以在Perl脚本中轻松实现Expect的各种功能,比如创建进程、等待响应、发送数据等。 #### 五、具体应用场景实例 **1. ...

    mysql基于mha高可用部署,需要的mha所有依赖包

    6. **Perl Expect模块**:提供交互式进程控制,对于SSH登录和执行命令很有用。 7. **Perl Time::HiRes模块**:提供高精度的时间测量,这对于监控和性能分析很重要。 8. **Perl Sys::Hostname::Long模块**:获取...

    Expect.pm:Expect Perl模块的官方源代码

    Expect模块是Perl编程语言中一个强大的工具,它允许程序员模拟交互式会话,尤其在处理需要用户输入的程序时非常有用。这个模块源自CPAN(Comprehensive Perl Archive Network),是Perl社区的重要资源,对Perl开发者...

    perl常用模块例子

    ### Perl常用模块详解 在Perl编程语言中,模块是封装了一组特定功能的代码集合,它们可以帮助开发者更快地实现各种复杂的功能,而无需从零开始编写所有代码。本文将详细介绍部分常用的Perl模块及其应用场景,帮助...

    expect安装包

    例如,expect可以与其他Unix工具如awk、sed、perl等结合,构建更强大的自动化解决方案。 在安装expect5.45.4这个版本时,通常需要遵循以下步骤: 1. **下载**:首先,你需要从官方网站或可靠的源获取expect5.45.4...

    perl网络批量抓取配置工具

    `Expect-1.15.tar.gz`、`Net-Telnet-3.03.tar.gz`和`IO-Tty-1.10.tar.gz`是这些Perl模块的源码包,用户需要先解压安装它们,才能在Perl环境中使用。通常,这涉及到编译源码、运行make和make install命令。 `cron_...

    strawberry-perl-5.10.1.0.msi

    此外,Perl还常用于系统管理和自动化任务,如使用Expect模块进行交互式程序的自动化,或者使用LWP(Library for WWW in Perl)模块进行网络抓取。 在数据分析和科学计算领域,Perl也有着广泛的应用,比如BioPerl...

    perl资料

    5. `PERL.txt`:这个文件可能是Perl语言的基本教程或参考手册,包含Perl语法、函数、模块介绍等内容,对于学习Perl的人来说是一份有价值的文档。 综上所述,这份“perl资料”涵盖了Perl语言基础、网络通信(SSH和...

    Expect.pm-开源

    Expect模块在Perl中的应用主要围绕以下几个核心概念: 1. **匹配模式**: Expect允许定义一系列的正则表达式或字符串作为匹配模式,当交互式程序输出与这些模式匹配时,脚本可以执行相应的操作。 2. **交互模拟**...

    perl 自动化测试权威教材英文版

    - **Expect.pm模块**:介绍了Perl中的Expect模块,用于模拟用户与命令行程序之间的交互。 - **简单计算**:演示了如何使用Expect.pm来测试bc计算器执行加法操作的能力。 - **结果验证**:讨论了如何验证计算结果...

    Perl批量远程执行指令脚本

    Perl批量远程执行指令脚本 批量远程执行命令的小工具 1.支持把主机分组执行命令 2.支持切换用户来执行命令 ...3.需要两个模块:XML::Simple.pm, Net::SSH::Expect.pm(已经集成在文件夹下, 无需安装)

    自动巡检脚本

    Expect模块是一个交互式进程控制工具,可以模拟人类与命令行界面的交互,包括发送命令、等待特定输出、处理异常等。在此场景下,它会连接到每个主机,执行`telcmd.ini`中指定的命令,然后捕获并记录返回的结果。 `...

    mysql mha0.58 rhel7依赖包

    6. **Expect**:Perl模块,用于自动交互式脚本,例如自动处理MySQL的密码输入。 7. **IO::Socket::INET6**:处理IPv6网络连接,虽然IPv4通常是主要的,但支持IPv6可以增加系统的灵活性和适应性。 8. **Digest::MD5...

    mha5.6安装包

    这些通常包括Python、Perl以及一些Perl模块,例如`DBI`, `DBD::mysql`, `Net::SSH::Perl`, `Net::SCP::Expect`等。在Debian或Ubuntu系统中,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get ...

    IPv6 ready logo环境搭建

    3. 安装 perl 相关的模块,包括 Expect、IO-Stty、IO-Tty、Digest-MD5、YAML、HMAC。 三、测试环境的搭建 1. 安装 NUT(Network Utility Toolkit),用于模拟网络环境。 2. 配置 NUT,包括添加静态 WAN、配置 LAN ...

    apache2.4.10.rar

    - **pcre-8.35.tar.gz**:Perl Compatible Regular Expressions (PCRE)是一个Perl语言风格的正则表达式库,用于在Apache中实现URL重写和其他基于规则的匹配功能。 - **httpd-2.4.10-deps.tar.gz**:这是一个包含...

    在Mac上通过inisde程序或演示文稿查看和操作程序

    2. **Perl**:Perl可以用于系统管理和脚本编写,结合Expect模块可以模拟键盘输入,控制X-Plane的执行。 3. **Python**:Python有丰富的库如Tkinter或PyQt用于创建图形用户界面,可以编写一个脚本来启动X-Plane,并...

    Linux 完全定制指南(中文)

    Expect-5.43.0 DejaGNU-1.4.4 GCC-4.0.3 - 第二遍 Binutils-2.16.1 - 第二遍 Ncurses-5.5 Bash-3.1 Bzip2-1.0.3 Coreutils-5.96 Diffutils-2.8.1 Findutils-4.2.27 Gawk-3.1.5 Gettext-0.14.5 Grep-...

Global site tag (gtag.js) - Google Analytics