Linux Expect 实现脚本自动交互

一、介绍

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
expect自动交互流程:

  • spawn启动指定进程
  • expect获取指定关键字
  • send向指定程序发送指定字符
  • 执行完成退出 eof

二、安装和命令

安装

yum install -y expect

常用命令

spawn               交互程序开始后面跟命令或者指定程序
expect              关键字匹配
send exp_send       发送指定的字符串信息
exp_continue        在expect中多次匹配就需要用到
send_user           用来打印输出 相当于shell中的echo
exit                退出expect脚本
eof                 expect执行结束 退出
set                 定义变量
puts                输出变量
set timeout         设置超时时间

脚本执行
1)声明 expect

脚本开头需声明
#!/usr/bin/expect

使用 expect xxx.sh 或者 ./xxx.sh 执行脚本

2)声明 bash

仍使用 bash 声明
#!/bin/bashexpect 命令部分包起来
/usr/bin/expect <<-EOF
xxxxx....
EOF

使用 sh xxx.sh 或者 ./xxx.sh 执行脚本

三、示例

远程登录主机
简单版本

#!/usr/bin/expect

spawn ssh xxx@192.168.xx.xx  # spawn 后面跟要执行的命令
expect "password"	# expect 后跟关键字,匹配上面命令执行后出现的提示字符串
send "123456\n"   # 最后需要一个换行符 \r 或者 \n
expect eof				# 表明结束(必要)

多命令匹配

#!/usr/bin/expect

spawn ssh xxx@192.168.xx.xx
expect {
"yes/no" { send "yes\r"; exp_continue }
"password:" { send "$passwd\r" }
}
expect eof

参考文章:
Linux expect 介绍和用法一

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值