Expect не распознает $ expect_out (buffer) или $ expect_out (0, string)

У меня Ubuntu 9.10 (и не могу изменить его в ближайшем будущем из-за тестирования) с expect5.45. Expect работает, но у меня есть (как минимум) две проблемы. Во-первых, expect, похоже, не соответствует строке «пароль:». На моем компьютере ручное взаимодействие выглядит следующим образом:

root@Monkey2:~# rlogin $remoteAddress -l root
root@nn.nn.nnn.nnn's password: 
Linux systest-desktop 2.6.31-22-generic #70-Ubuntu SMP Wed Dec 1 23:51:13 UTC 2010 i686

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

72 packages can be updated.
70 updates are security updates.

Last login: Mon Jun 20 13:40:22 2011 from monkey2.local
root@systest-desktop:~# 

Содержимое скрипта выглядит следующим образом:

 #! / Usr / local / bin / expect -f

 ## Подключитесь к соседнему Linux-серверу.
создать ssh nn.nn.nnn.nnn -l root

ожидать "пароль: \ n"

отправить "мой пароль \ n"

отправить "$ expect_out (0, строка)"
 

Сценарий получает и отображает строку с запросом пароля, но время ожидания истекает. Я пробовал использовать «пароль:», «пароль:», «пароль: \ r» и «пароль: *», но, похоже, ни один не подходит.


Вторая проблема заключается в том, что переменная expect_out не распознается, и я получаю следующая ошибка при запуске скрипта (имя которого 'this' и всего 11 строк!):

не может прочитать «expect_out (0, string)»: нет такой переменной при выполнении "отправить" $ expect_out (0, строка) "" (файл "это" строка 18)

5
задан Mike Loutris 20 June 2011 в 20:03
поделиться