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 命令或處理更復雜的交互。