Re: How to control the loop within expect.
- From: Bruce Hartweg <bruce-news@xxxxxxxxxx>
- Date: Fri, 28 Apr 2006 08:10:18 -0500
hujunfeng@xxxxxxxxx wrote:
I just met a problem when I have a loop and an expect in this loop.2 things,
for example
for {set i 1} {i<10} {incr i} {
send a commanda
expect {
1 {puts 1}
2 {puts 2}
3 {........}
}
send a commandb
}
when I get the value 1, I will puts 1 and execute the commandb, so as
2.but my question is if I get the value 3, I want to continue the loop
but not execute send the commandb.
I've used break or exit , these all seemed exit the loop.
Do anybody knows this?
Thanks.
As others have mentioned you can use expect itself as the looping
construct (i.e. if you want to keep doing the same interactions until some
condition of the interaction makes you want to stop. in this case you
just add exp_continue to each branch that doesn't want you to stop.
If the above example is actually what you are wanting (i.e. the loop condition
is *external* to your interaction, and you have other code in your loop
in addition to the expect, you can use the normal tcl continue to stop
the current loop body and continue to the next one
for {set i 1} {i<10} {incr i} {
send a commanda
expect {
1 {puts 1}
2 {puts 2}
3 {
........
continue
}
}
send a commandb
}
Bruce
.
- Follow-Ups:
- Re: How to control the loop within expect.
- From: Hu Junfeng
- Re: How to control the loop within expect.
- References:
- How to control the loop within expect.
- From: hujunfeng
- How to control the loop within expect.
- Prev by Date: Re: Tcl_Ungets help [long, technical]?
- Next by Date: Re: How to export postscript from canvas?
- Previous by thread: Re: How to control the loop within expect.
- Next by thread: Re: How to control the loop within expect.
- Index(es):
Relevant Pages
|