以前 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 script,因為 process 無法結束,我就用 kill 殺掉這個 process。可是之後任何的 expect script 都無法 spawn 任何程式了。重新開機後問題還是沒有解決。請問該怎麼辦?謝謝。
我覺得問題好像不是這個耶, 除非 expect 那程式壞掉了.
重裝 expect 試試看?