使用 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

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix 並標籤為 , 。將永久鏈結加入書籤。

使用 expect 來建立 Shell 文字輸入自動化 有 3 則回應

  1. 彥安 說道:

    謝謝Tsung大的回覆,
    超有效率+感激不盡!!!
    小的回去試試看,若有問題還得請較您!
    感恩!!

  2. x 說道:

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

發表迴響

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