作用
工作中,我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行。
利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行
“模式-动作”,expect 匹配到一个模式,就执行对应的动作
常用命令
- spawn
*spawn命令用来启动新的进程,spawn后的send和expect命令都是和使用spawn打开的进程进行交互 - expect 匹配模式
*expect等待一个进程的反馈,我们根据进程的反馈,再发送对应的交互命令 - send
*send命令将字符串(可以是变量)发送到进程
- 表示确认操作或者换行
- 注意空格
- interact
*interact用于退出自动化,进入人工交互
#! /usr/bin/expect -f
set user //设置变量
set host
set password
spawn ssh $user@$host
expect "*password:*"
send "$password
"
interact
expect eof