
我想使用 bash 中的 telnet 用戶端向 TCP 伺服器發送兩個或更多訊息。這意味著我應該在執行腳本時保持會話開啟。
例如,腳本流程應該是:
1) open telnet session
2) send 1st message
3) sleep 1 s
4) send 2nd message
5) close session
實現這一目標的最佳方法是什麼?
答案1
expect
是此類用例的最佳工具。這裡這是我在 Unix & Linux 網站上對與您類似問題的回答。它可以簡單地適應您的情況:
#!/usr/bin/expect
spawn telnet 10.0.0.1
expect "ogin:"
send "myuser\r"
expect "assword:"
send "mypassword\r"
expect "#"
send "command1\r"
expect "#"
sleep 1
send "command2\r"
expect "#"
send "exit\r"