Проблема в том что если хочу вывести много команд которые без 20 разового подключения к одной железке, а прогнать все за одно подключение.
Как известно иногда бывают ситуации что вывод не помещается в окно и тогда использование:
Код: Выделить всё
for {} 1 {} {
expect {
-timeout 5
"*Next Page*" { send "n" }
"More:*space*" { send " " }
"*#" exit 0
}
}
Код: Выделить всё
#!/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