expect
是一个用于自动化交互式应用程序的工具,它可以根据预定义的模式和命令自动执行相应的操作
以下是一个简单的示例,说明如何将 expect
与 shell 脚本结合使用:
expect_script.exp
的 expect 脚本文件:#!/usr/bin/expect
# 设置超时时间(以秒为单位),如果在这个时间内没有匹配到任何模式,脚本将退出
set timeout 20
# 设置命令变量,稍后将用于执行 shell 命令
set cmd "echo 'Hello, World!'"
# 使用 spawn 命令启动交互式 shell
spawn /bin/bash
# 使用 expect 命令等待特定的字符串出现在输出中
expect "$ "
# 使用 send 命令发送 shell 命令到交互式 shell
send "$cmd\r"
# 使用 expect 命令等待命令提示符再次出现,以便我们可以继续执行其他命令
expect "$ "
# 使用 interact 命令将控制权交还给用户,以便他们可以与交互式 shell 进行交互
interact
chmod +x expect_script.exp
./expect_script.exp
这个示例中,我们创建了一个简单的 expect 脚本,用于在交互式 shell 中执行一个 echo
命令。当然,你可以根据需要修改脚本,以执行其他 shell 命令或处理更复杂的交互。