以前 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 試試看?