2013-06-12 2 views
0

То, что я пытаюсь сделать, это написать сценарий ожидания, который позволит мне искать файл A, и если найден файл A, отправьте серию команд. Если найдены файлы B или C, продолжайте выполнение скрипта. Я постоянно зацикливаюсь на регулярном выражении. Я запускаю выражение через www.myregextester.com в одиночку с данными, которые я ищу, и это соответствует только штрафу. Если у кого-нибудь есть опыт с этим, я бы очень признателен за помощь.Использование регулярных выражений с ожиданием

send "term length 0\r" 
expect "*#" 
send "wr mem\r" 
expect "*#" 
send "dir flash:\r" 
expect 
    if [[ \bc3750-ipservicesk9-mz.122-55.SE7.bin\b ]]; then { 
     send "conf t\r" 
     expect "*(config)#" 
     send "boot system flash:c3750-ipservicesk9-mz.122-55.SE7.bin\r" 
     expect "*(config)#" 
     send "exit\r" 
     expect "*#" 
     send "reload at 02:00 8 June\r" 
     expect "System configuration has been modified. Save? [yes/no]:" 
     send "yes\r" 
     expect "Proceed with reload? [confirm]" 
     send "\r" 
     expect "*#" 
     send "wr\r" 
     expect "*#" 
     send "exit\r 
     expect eof 
    elif [[ \bc3750-ipservicesk9-mz.122-55.SE5\b | b\c3750-ipservicesk9-mz.122-55.SE5.bin\b} ]]; then 
fi 
} 

ответ

0
expect { 
    -re {\mc3750-ipservicesk9-mz\.122-55\.SE7\.bin\M} { 
     send "conf t\r" 
     #... 
    } 
    -re {\mc3750-ipservicesk9-mz\.122-55\.SE5(?:\.bin)?\M} 
} 

Ожидать является расширением Tcl: вы можете прочитать о Tcl регулярных выражений here.

+0

Это действительно похоже на это, спасибо за ссылку. Это была огромная помощь! – bjforesthowell

Смежные вопросы