我需要帮助创建一个期望的循环。我有一个脚本可以将ssh生成到cisco路由器中并显示呼叫活动语音简报"命令。我需要捕获所有输出,但问题是当屏幕被填满时它停止并要求我按空格以查看输出的其余部分。输出的长度并不总是相同。这意味着我必须按空间的次数不同。这就是我需要循环的>>>
expect “*More*” #this means the screen is full and I need to press space to see more output
send – “ “
那么如何循环呢。
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
expect "*More*" {send " "} \
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
答案 0 :(得分:0)
像这样:
expect {
"*More*" {send " "; exp_continue}
"*RTsedeVoIP_GW1#*" {send -- "exit\r"}
}
exp_continue
命令本质上是一个"重做"在当前expect
命令中循环。