Pytanie : oczekiwać: timeout dla deseniowy akcja blok tylko?

Być tam  sposób timeout dla właśnie deseniowy akcja blok bezpartyjnik (lub być może podwładny) the globalny timeout parametr?

set timeout 15

spawn telnet $target

send "\ r "
expect {
"nazwa użytkownika: " {wysyłać "$AUTOUSER \ r"; exp_continue}
"ssword: " {wysyłać "$PASSWORD \ r"; exp_continue}
"$->" {grab_stats}
timeout {send_log -- "ŚMIECI LUB MÓC \ N"; wyjście} ## Móc the timeout dla ten brak ustawianie timeout the globalny timeout ustawiać ustawiać?
}


Odpowiedź : oczekiwać: timeout dla deseniowy akcja blok tylko?

Pewny, timeout być świetny tak daleko jak timeout iść. Ale ono być niefortunny przykład - gdy ty ikrzyć się telnet ty dostawać nazwa użytkownika: podpowiedź bez dosłanie cokolwiek. The dodatek \ r uzyskiwać inny nazwa użytkownika: podpowiedź. Pismo można twój pismo. Oczywiście, twój cel system móc różny - warty.
Dwoisty wycena być tylko dla przestrzeń w sznurek - sznurek z jakaś inny specjalny charakter potrzebować bras. Także, raczej robić raczej kod w the oczekiwanie pętla, I pozwalać ono i the kod następnie.
W Przeciwieństwie Do z skorupa, ty musieć przeciw the możliwość że the wartość argument zawierać przestrzeń (i.e jeżeli the argument imię zawierać przestrzeń wtedy ono musieć przytaczać).
I opuszczać the wycena wokoło nazwa użytkownika: i ssword: the następujący przestrzeń
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
ustawiać timeout 15

ikrzyć się telnet $target

ustawiać timeout 5
oczekiwać {
      "nazwa użytkownika: "    {wysyłać $AUTOUSER \ r; exp_continue}
      "ssword: "       {wysyłać $PASSWORD \ r; exp_continue}
      {$->}            {}
      brak          {send_log -- "ŚMIECI LUB MÓC \ N"; wyjście}
      }

ustawiać timeout 15

# grab_stats
Inne rozwiązania  
 
programming4us programming4us