使用 expect 來建立 Shell 文字輸入自動化

以前 BBS 要自動登入, 並順便做某些事情, 有個很方便的工具叫 expect.

於 Linux CLI 的 Shell 執行的指令, 可以使用 expect 來達到自動輸入的效果.

BBS 自動登入的 Script 範例

  • vim ptt.sh
    #!/usr/bin/expect -c
    spawn telnet -8 ptt.cc
    expect 輸入代號:
    send "id\n"
    send "password\n"
    
    # 下面這行就請自行調整了、 \n = Enter 鍵
    send "\n\nt\nu\n"
    
    # 每 300 秒送出一次 s 鍵
    interact timeout 300 { send "s" }
    exit
  • vim bbs.sh
    #!/usr/bin/expect
    spawn telnet -8 "[lrange $argv 0 0]"
    interact timeout 300 { send "\x00" }
    exit

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈使用 expect 來建立 Shell 文字輸入自動化〉中有 3 則留言

  1. 您好。我執行了一個寫錯的 expect script,因為 process 無法結束,我就用 kill 殺掉這個 process。可是之後任何的 expect script 都無法 spawn 任何程式了。重新開機後問題還是沒有解決。請問該怎麼辦?謝謝。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料