2012-04-08 3 views
1

У меня есть сценарий ожидания, который помещает в файл список со всеми MAC-адресами, связанными с коммутатором.Сценарий EXPECT, как обрабатывать несколько страниц вывода

#!/usr/bin/expect -f 
spawn telnet 192.168.20.222 
match_max 10000 
expect "*?to continue*" 
send -- "\r" 
send -- "show mac \r" 
expect -- "*?2626#*" 
send -- "exit \r" 
expect -- "*?2626>*" 
send -- "exit \r" 
expect "*?y/n*" 
send -- "y \r" 

все работает нормально, но если есть слишком много адресов коммутатор будет сказать коснуться, как это:

- MORE - на следующую страницу: Space, следующую строку: Enter, выйти: Control-C

, конечно, может быть N страниц, с N неизвестным.
Как мне это сделать?

ответ

3
send -- "show mac \r" 
expect { 
    "MORE --, next page" {send -- " "; exp_continue} 
    "*?2626#*" {send -- "exit \r"} 
} 
Смежные вопросы