
Я хочу отправить два или более сообщений на TCP-сервер с помощью клиента telnet из bash. Это подразумевает, что я должен поддерживать сессию открытой, пока мой скрипт находится в процессе выполнения.
Например, сценарий должен выглядеть следующим образом:
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"