Expect 交互式工具

type
status
date
slug
summary
tags
category
icon
password

一、Expect 是什么?

Expect 是一个用于自动化交互式应用程序的命令行工具。它可以通过脚本模拟用户输入,实现对需要人工交互的程序(如 sshpasswdftp 等)的自动化操作。

二、Expect 的基本语法结构

1. 脚本开头

表示这是一个 Expect 脚本。

2. 设置超时时间

表示等待响应的最长时间为 10 秒,超时则继续执行下一句。

3. 启动一个交互式进程

例如:spawn passwd root

4. 期望出现的字符串

例如:expect "New password:"

5. 发送字符串

例如:send "redhat\\n"

6. 结束标志

表示等待进程结束。

三、使用场景示例

示例1:自动设置用户密码(单独使用 Expect)

示例2:在 Shell 脚本中嵌入 Expect


四、实战:配置 SSH 免密登录

目标:

批量为多台主机配置 SSH 免密登录。

脚本示例(修正版):


📌 补充知识点:

  • exp_continue:用于在匹配到一个模式后继续等待下一个模式,常用于处理多次交互。
  • interact:将控制权交还给用户,用于调试或半自动化场景。
  • \\r\\n:在 Expect 中通常使用 \\r 表示回车,\\n 有时也可用,但建议统一使用 \\r

Loading...