expect用法(实例讲解)

本文介绍了如何使用expect来自动应答脚本,避免手动输入。首先展示了一个需要手动回答的问题脚本,然后演示了如何创建并使用answer.exp应答脚本,包括安装过程和给予执行权限。通过expect调用,即使目标脚本不完整,也可以正常运行,例如自动SSH连接到指定IP地址的主机,如果网络不通则会报错。

expect用法

expect自动应答命令(用于交互式命令的自动执行)
set timeout 1执行等待1秒,一秒后继续向下执行
set NAME [ lindex $argv 0 ]定义变量
sapwn监控程序
send发送问题答案给交互命令
\r回车
exp_continue继续回答下面的
expect eof表示回答完那些问题后,退出expect环境
interact问题回答完后留在交互界面

1)问题脚本

#!/bin/bash
read -p "what's your name:" NAME
read -p "How old are you: " AGE 
read -p "Which objective: " OBJ
read -p "Are you ok? " OK
echo $NAME is $AGE\'s old study $OBJ feel $OK

在这里插入图片描述
直接执行,需要手动输入问题的答案
在这里插入图片描述

2)应答脚本

  • yum install expect -y进行安装

  • vim answer.exp 此时就不是以.sh结尾了
    在这里插入图片描述

  • 使用expect调用,记住必须chmod +x ask.sh给可执行权限
    在这里插入图片描述
    在这里插入图片描述
    使用expect,即使ask.sh里面包含的内容不全(注释掉年龄),也不会影响正常运行
    在这里插入图片描述

脚本练习:
auto_ssh 192.168.0.1 westos
可以自动连接目标主机当目标主机网络不通时报错

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值