简介
expect是建立在tcl语言基础上的工具,专门用来解决shell脚本中不可交互的问题。只能捕捉由spawn命令启动的进程的输出。

基础命令

send:向进程发送字符串,用于模拟用户的输入

expect:判断上次输出的结果是否包含指定的字符串,如果由立即返 回,否则就等待超时时间后返回

spawn:启动进程,并跟踪后续交互信息

interact:执行完成后保持交互状态,把控制权交给控制台

EOF:结束交互状态
timeout :指定超时时间,默认10s timeout -1为永不超时
exp_continue 容许expect继续向下执行命令
send_user 回显命令,相当于echo
$argv参数数组 :expect脚本可以接受从bash传递的参数,可用使用 [lindex $argv n]获得,n从0开始,表示第一个参数。

expect执行方式

直接执行
嵌入执行

直接执行脚本声明 :#!/usr/bin/expect
嵌入执行脚本声明:#!/bin/bash

脚本实例

1 远程登录其他主机

直接执行

expect工具基本应用

expect工具基本应用

嵌入执行

expect工具基本应用

expect工具基本应用

2 创建用户 并设置密码

expect工具基本应用

expect工具基本应用