Telnet 和 shell 腳本。在腳本執行時保持會話打開並發送數據

Telnet 和 shell 腳本。在腳本執行時保持會話打開並發送數據

我想使用 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"

相關內容