Expect简介与应用场景

本文详细介绍了 Expect 工具,用于自动化交互任务,例如 SSH 登录。通过 spawn 启动进程,expect 期待关键字,send 发送输入,timeout 设置超时,以及 interact 允许用户交互等功能, Expect 能够实现复杂场景的自动化处理。

一、简介

1、EXPECT是一个用来实现自动交互功能的软件套件(EXPECT is a software suite for automating interactive tools),用于提供自动交互的工具。

2、在实际工作中,我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行。而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。这就是expect!!!

3、设想一个场景:比如你要用ssh或者 telnet登录服务器的时候,命令行下提示需要输入用户和密码等。如果叫你用shell脚本写自动登录脚本的话是不是有点困难呢? 你会说在shell中执行ssh命令的话,他会一直停在那里等你密码啊,这个要手工来做才行吧?

4、Expect就是为处理这类情况而设计的工具,简单来说它可以控制、处理输入,输出流,然后提供自动填写数据等需要用户交互式输入的数据的地方实现自动化处理。Expect就是为了处理“自动交互”的工具。
Expect 支持自定义的脚本,所以你通过编写自定义脚本就可以实现你想要的自动填写数据功能了。

二.expect的工作流程

expect的工作流程可以理解为,spawn启动进程---->expect期待关键字---->send向进进程发送字符—>退出结束。

三、spawn命令作用

1、spawn命令用来启动新的进程,spawn后的send和expect命令都是和使用spawn打开的进程进行交互。

2、spawn命令是expect的初始命令,它用于启动一个进程,之后所有expect操作都在这个进程中进行,如果没有spawn语句,整个expect就无法执行了,spawn使用方法如下:

spawn ssh root@192.168</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值