#!/bin/sh
. /usr/local/sbin/mini-tools/expect.lib.sh
# цепляем библиотеку (ее код дан ниже)
expect_open -c telnet 192.168.1.1
# использование: expect_open [-c | -e <filename> ] <command> ....
#опция -с включает дублирование вывода на консоль
#опция -e включает дублирование вывода в <filename>
#без опций - вывода нет
expect Login
# ждем строку включающую в себя login - запрос имени пользователя
send_line admin
# отправляем строку с именем пользователя "admin" и перевод строки
expect_eol
# ждем перевод строки, который мы же и отправили
expect Password:
send_line 123
expect_eol
expect_exact '>'
# ждем строку состоящую только из # - запрос от shell'а
expect_echo_start
# для примера - включение вывода на консоль с этого момента
send_line ifconfig
expect_eol
expect_capture_start
# начало захвата вывода в переменную $EXPECT_OUTPUT, очищает переменную
expect_eol
# ждем перевода строки, т.е. в $EXPECT_OUTPUT будет вывод от первого
echo "Modem is: $EXPECT_OUTPUT"
# date -s $EXPECT_OUTPUT
send_line logout
expect_eol
expect_close
# закрываем запущенный процесс (телнет)