expect 交互
文章目录
1. 概述
建立在tcl语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互相关的问题
主要作用:
1.追踪需要交互的指令
2.捕捉提示进行交互的关键词
3.传入交互指令,回车执行
2. 安装expect
expect是一个程序,所以他也是需要提前安装才可以使用的
[root@lwb ~]# rpm -q expect
未安装软件包 expect
[root@lwb ~]# rpm -q tcl
未安装软件包 tcl
[root@lwb ~]# yum install -y expect //安装expect时会把tcl作为依赖包安装
3.基本命令
3.1脚本解释器
expect脚本中首先引入文件,表明使用的是哪一个shell
#!/usr/bin/expect
3.2 spawn
spawn后面通常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交互信息。
例如:
spawn passwd root
3.3 expect
- 判断上次输出结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回
- 只能捕捉由spawn启动的进程的输出
- 用于接收命令执行后的输出,然后和期望的字符串匹配
3.4 send
向进程发送字符串,用于模拟用户的输入;该命令不能自动回车换行,一般要加 \r (回车) 或者 \n
方式一:
expect "密码"{
send "abc123\r" } //同一行send部分要有{
}
方式二:
expect &