一、介绍expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。expect自动交互流程:spawn启动指定进程expect获取指定关键字send向指定程序发送指定字符执行完成退出 eof二、安装和命令安装yum install -y expect常用命令spawn 交互程序开始后面跟命令或者指定程序expect 关键字匹配send exp_send 发送指定的字符串信息exp_continue 在expect中多次匹配就需要用到send_user 用来打印输出 相当于shell中的echoexit 退出expect脚本eof expect执行结束 退出set 定义变量puts 输出变量set timeout 设置超时时间脚本执行1)声明 expect脚本开头需声明#!/usr/bin/expect使用 expect xxx.sh 或者 ./xxx.sh 执行脚本2)声明 bash仍使用 bash 声明#!/bin/bash将 expect 命令部分包起来/usr/bin/expect <<-EOFxxxxx....EOF使用 sh xxx.sh 或者 ./xxx.sh 执行脚本三、示例远程登录主机简单版本#!/usr/bin/expectspawn ssh xxx@192.168.xx.xx # spawn 后面跟要执行的命令expect "password" # expect 后跟关键字,匹配上面命令执行后出现的提示字符串send "123456\n" # 最后需要一个换行符 \r 或者 \nexpect eof # 表明结束(必要)多命令匹配#!/usr/bin/expectspawn ssh xxx@192.168.xx.xxexpect {"yes/no" { send "yes\r"; exp_continue }"password:" { send "$passwd\r" }}expect eof参考文章:Linux expect 介绍和用法一
