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 脚本:
./expect_script.exp
这个示例中,我们创建了一个简单的 expect 脚本,用于在交互式 shell 中执行一个 echo
命令。当然,你可以根据需要修改脚本,以执行其他 shell 命令或处理更复杂的交互。