Expect, проблема с потоком комманд

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Expect, проблема с потоком комманд

Непрочитанное сообщение InventoR » 2011-12-02 9:35:58

Небольшой скрипт, который подключается к железкам Dlink и вводит на них ряд комманд.
Проблема в том что если хочу вывести много команд которые без 20 разового подключения к одной железке, а прогнать все за одно подключение.
Как известно иногда бывают ситуации что вывод не помещается в окно и тогда использование:

Код: Выделить всё

for  {} 1 {} {
    expect {
            -timeout 5
            "*Next Page*" { send "n" }
            "More:*space*" { send " " }
            "*#" exit 0
    }
}
помогает от этой проблемы (найдено на просторах сети), но мне хочется чтобы допустим 8 раз подряд выводилось show switch и система переходила на другое железо, получается так что отрабатывается только первая строка комманды из файла command.txt и скрипт завершает свою работу. Подозреваю проблема как раз в секции for, но как её правильно решить?

Код: Выделить всё

#!/usr/bin/expect -f

set remote_server [ lindex $argv 0]
set login [ lindex $argv 1]
set password [ lindex $argv 2]

set commandtxt [ open "command.txt" r]
foreach uline [split [ read $commandtxt] "\n" ] {


log_user 0 # Отключаем вывод на экран.
spawn telnet $remote_server
expect "UserName:" {send "$login\r"}
expect "PassWord:" {send "$password\r"}
#interact
log_user 1 # Нам необходим результат поэтому активируем вывод


expect "*#" {send "$uline\r"}

for  {} 1 {} {
    expect {
            -timeout 5
            "*Next Page*" { send "n" }
            "More:*space*" { send " " }
            "*#" exit 0
    }
}

send "logout\r\n"
log_user 0
}
close $commandtxt
ну вот и сказочке конец, кто слушал, тот молодец.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Expect, проблема с потоком комманд

Непрочитанное сообщение Alex Keda » 2012-02-26 21:16:07

ну а чё бы не подключиться сколько надо раз-то?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
InventoR
ст. лейтенант
Сообщения: 1344
Зарегистрирован: 2006-12-10 19:43:25
Контактная информация:

Re: Expect, проблема с потоком комманд

Непрочитанное сообщение InventoR » 2012-02-27 8:17:51

ну а если захочется 20 правил аксесса ввести на 1000 железках, это же сколько времени пойдет
ну вот и сказочке конец, кто слушал, тот молодец.