Пытаюсь автоматизировать сбор некоторых данных с узлов, доступных по telnet с помощю скрипта, используя expect
#!/usr/bin/expect
set timeout 20
set name [lindex $argv 0]
log_user 1
spawn telnet $name
expect "login:"
send "USERNAME"
expect "Password:"
send "PASSWORD"
send " "
send "show ip interface eth0 brief"
send " "
send "exit"
Скрипт отлично годится для выполнения команд на удаленном узле (и при запуске из другого скрипта — на многих узлах по списку), но вот в вывод не попадает результат выполения команд на удаленном узле, т.е. я вижу что-то типа
Trying 10.10.10.5...
Connected to 10.10.10.5.
Escape character is '^]'.
CLI interface
login:
Password:
А хотел бы видеть
Trying 10.10.10.5...
Connected to 10.10.10.5.
Escape character is '^]'.
CLI interface
login: USERNAME
Password: ********
nodename>
nodename>show ip interface eth0 brief
Interface IP-Address Status Protocol
eth0 10.10.10.5 up up
nodename>
nodename>exit
Connection closed by foreign host.
либо хотя-бы
Interface IP-Address Status Protocol
eth0 10.10.10.5 up up
Как с помощю expect получать вывод выполнения команд на удаленном хосте?