bash + expect (помогите их подружить)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
knicefire
Сообщения: 86
ОС: Arch Linux

bash + expect

Сообщение knicefire »

Привет всем.
Есть такая проблема. У меня есть оборудование настройка которого осуществляется через telnet. Т.е. попадаем по телнету на оборудование получаем меню, выбираем нужные пункты, вводим нужные параметры и готово.
Так вот, зачастую пункты меню одни и те же, изменяются только вводимые параметры, допустим имя оборудования и адрес где оно установлено.
Хотелось бы написать скрипт который бы спросил у меня допустим нужные параметры (имя и адрес) а потом бы сам это все вписал в оборудование.
Для этого я использую bash и expect. Но у меня никак не получается передать скрипту expect со скрипта bash необходимые переменные.
т.е. допустим

#!/bin/bash
echo "Введите имя оборудования"
read name
echo "Введите адрес"
read adres

./expect_script $name $adres


В скрипте expect'a пишу
#!/usr/bin/expect
spawn telnet 192.168.0.1
expect "login"
send "admin"
expect ">"
send "2\r"
expect ">"
send "$name\r"
expect ">"
send "3\r"
expect ">"
send "$adres\r"
sleep 2
exit

после выполнения первого скрипта ввожу данные, все норм но потом получаю
can't read "name": no such variable
while executing
т.е. я так понял переменные туда не передаются..
пробовал читать маны по expect ничего толком не нашел.. может плохо смотрел..
может кто-то сталкивался с данной проблемой.. на рускоязычных сайтах искал - ответа не нашел..
Спасибо сказали:
arch
Сообщения: 74
ОС: freebsd/arch

Re: bash + expect

Сообщение arch »

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

./expect_script $name $adres

Лучше expect ./expect_script $name $adres , но это так, на всякий случай. ;)

can't read "name": no such variable
while executing

Ну дык, expect $name и $adres,с этими именами, конечно не передаются. Нужно в начале expect-скрипта нечто вроде:

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

set name [lrange $argv 0 0]
set adres [lrange $argv 1 1]
Спасибо сказали:
knicefire
Сообщения: 86
ОС: Arch Linux

Re: bash + expect

Сообщение knicefire »

спасибо....
попробую
Спасибо сказали:
knicefire
Сообщения: 86
ОС: Arch Linux

Re: bash + expect

Сообщение knicefire »

спасибо огромнейшее
все работает отлично!
Спасибо сказали:
Ответить