Expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中。
以下是一个telnet自动登录的小脚本
#!/usr/bin/expect --
# 向远程服务器请求打开一个telnet会话,并等待服务器询问用户名
spawn telnet 127.0.0.1
expect "username:"
# 输入用户名,并等待服务器询问密码
send "admin\r"
expect "Password:"
# 输入密码,并等待键入需要运行的命令
send "admin\r"
expect "%"
# 输入预先定好的密码,等待运行结果
send "create vlan test\r"
expect "%"
# 将运行结果存入到变量中,显示出来或者写到磁盘中
set results $expect_out(buffer)
# 退出telnet会话,等待服务器的退出提示EOF
send "exit\r"
expect eof
利用expect, 可以方便的完成ftp,telnet, passwd等自动操作. 也可以进行一系列自动化测试! :)
参考:
Expect on SourceForge (current)
Official homepage (very outdated!)
The Tcler's Wiki -- Expect page
Perl Expect.pm module
Pexpect a Pure Python Expect-like module
Expect Scripting Tutorial
Empty - expectlike tool to run command-line interactive programs in UNIX shell-scripts
Expect-lite -- a wrapper for expect, making automation easy, quick, and fun
Bulletproof: Reliable CLI interface using Expect
ExpectJ - a Java implementation of the Unix expect utility
分享到:
相关推荐
`expect`是一个基于TCL(Tool Command Language)的脚本语言,主要用于自动化那些需要用户交互的任务,它能够模拟用户对命令行的输入,极大地提高了工作效率。 `expect`的基本工作原理是通过读取脚本中的指令,监控...
标题中的"Linux ssh登录远程服务器 expect"指的就是利用`expect`脚本来实现Linux系统中SSH登录的自动化。这种方式在批量管理多台服务器、持续集成环境或者需要定期运行远程任务的场景下非常有用。 `expect`的基本...
它基于Tcl(Tool Command Language)语言开发,能够实现对远程登录(如telnet、ssh)、配置设备等场景的自动化处理。Expect的强大之处在于它能够自动处理那些需要人工干预的脚本任务,例如自动应答yes/no问题、自动...
`Expect`是建立在`TCL`基础上的一个扩展,专为自动交互式应用程序设计,如SSH、telnet等。` Expect5.43.0`和`TCL8.4.11`是这两个工具的特定版本,它们可能包含了对某些功能的优化和改进。 首先,`TCL(Tool Command...
"Expect"是一个强大的自动化工具,主要用于自动化交互式命令行程序,比如SSH登录、FTP传输、telnet操作等。它基于Tcl(Tool Command Language)语言,允许用户编写脚本来模拟键盘输入,使得非脚本化的命令行程序可以...
"Expect"是一个强大的自动化脚本工具,主要用于与交互式应用程序进行自动对话,比如telnet、ftp、passwd等。它的设计灵感来源于TCL(Tool Command Language)语言,因此在安装和使用Expect时,通常需要先安装TCL环境...
#### 三、使用Expect实现远程登录自动化示例 下面是一个使用**Expect** 实现远程登录并执行命令的示例脚本: ```expect #!/usr/bin/expect sample_login.exp proc do_console_login {login pass} { set timeout ...
5. 运行`expect`脚本:通过`expect`命令运行脚本,自动与目标程序交互。 `expect`的关键特性包括: - **期望模式匹配**:可以设置期望的输出,当脚本检测到该输出时,执行相应的动作。 - **进程控制**:可以启动、...
在IT领域,TCL(Tool Command Language)和Expect是两种重要的自动化工具,广泛应用于脚本编写和系统测试。本文将详细介绍这两个工具以及如何配置它们。 首先,TCL是一种动态编程语言,由John Ousterhout在1988年...
Expect能模拟用户输入,并根据程序的输出做出响应,这对于自动化测试、无人值守的系统维护等任务非常有用。 Expect的基本思想是创建一个进程,监控其标准输出和错误输出,然后根据预定义的模式发送相应的输入。 ...
其次,`expect`是一个基于`TCL`的工具,由Don Libes创建,其主要目的是自动控制交互式应用程序,特别是用于自动化SSH、Telnet和其他网络协议的登录过程。`expect`能够模拟终端输入,响应程序的输出,使得编写自动化...
expect是一个由Don Libes在1993年创建的开源工具,主要用于自动化那些需要用户交互的任务,如SSH登录、telnet会话、FTP传输等。expect通过模拟键盘输入,响应程序的输出,实现了对命令行程序的自动化控制。它基于Tcl...
它的核心功能在于模拟用户与命令行界面的交互,特别适合于自动化SSH登录、FTP传输、telnet会话等需要输入和等待响应的任务。expect-5.43.0版本是expect的一个稳定版本,包含了丰富的功能和修复的多个bug,使得它在...
使用expect,你可以编写脚本来自动执行一系列步骤,例如登录远程服务器、执行命令、检查返回结果,然后根据这些结果决定下一步的操作。这对于系统管理员和测试工程师来说非常有用,因为他们可以减少手动重复工作,...
在IT领域,`Expect`是一个强大的自动化脚本工具,它允许程序员或系统管理员与命令行接口(CLI)进行交互,特别是在需要输入响应的自动化场景下非常有用,如SSH登录、FTP传输等。`Expect`是基于TCL语言的一个扩展,...
- **应用场景**: 典型的应用场景包括批量执行命令、自动登录和退出远程系统、执行复杂的多步骤任务等。 #### 五、总结 Tcl作为一种简单而强大的脚本语言,非常适合于开发自动化管理和控制脚本。结合Expect这样的...
这对于自动化执行需要手动输入的命令或脚本非常有用,比如SSH登录、FTP传输、telnet会话等。 Expect脚本主要由以下几部分组成: 1. **初始化**: 定义要启动的进程,例如`spawn ssh user@example.com`。 2. **期待...
在实际应用中,Expect可以用来做很多事情,比如自动执行SSH登录、备份数据库、自动化网络设备配置等。通过编写简单的脚本,你可以让Expect模拟人类用户与命令行界面的交互,从而实现无人值守的自动化任务。例如,你...