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

被折叠的 条评论
为什么被折叠?



