expect 基础要知道:
- expect是自动应答用于交互式的命令(相对于语句,更像是命令);
- spawn 是expect中的监控程序,运行后会监控命令提出的交互问题;
- send 发送问题答案给交互命令
- exp_continue 表示当问题答案不存在时继续回答下面的问题;
- expect eof 表示问题回答完毕退出expect环境
- interact 表示问题回答完毕依旧停留在交互界面(一般用于远程登陆时)
- set NAME(变量名)[ lindex $argv n ] 定义变量
yum install -y expect.x86_64 ##安装expect软件才能使用expect
expect 脚本一般以#!/usr/bin/expect 开头,规定脚本的运行环境(expect的运行环境不同与shell脚本的运行环境)
spawn 新建一个进程,这个进程的交互由expect控制
示例:
存在一个交互式脚本(shell脚本)
[root@localhost ~]# cat ask.sh
####################################
#Author: Linux #
#Version: 7.3 #
#Mail: Linux@toto.com #
#Create_Date: 2019-08-23 02:24:36 #
#Description: #
# #
####################################
#!/bin/bash
read -p "what's your name: " NAME
read -p "where are you from: " ADDR
read -p "how old are you: " AGE
read -p "what are you doing: " ACTION
echo "$NAME come from $ADDR ,now $AGE years old,is $ACTION"
[root@localhost ~]# sh ask.sh ##执行该脚本时需要 一步步输入所要的参数
what's your name: lily