Vraag : denk: onderbreking voor slechts het blok van de patroonactie?

Is er een manier om een onderbreking voor enkel een het blokonafhankelijke van de patroonactie van (of misschien ondergeschikt te plaatsen) de globale onderbrekingsparameter?

set onderbreking 15

spawn Telnet $target

send „\ r "
expect {/> „login „ssword: “ {verzend „$PASSWORD \ r“; exp_continue}/> „$->“ {grab_stats}
onderbreking
}


Antwoord : denk: onderbreking voor slechts het blok van de patroonactie?

Zeker, zou dat fijn zijn voor zover de onderbrekingen gaan. Maar het is een ongelukkig voorbeeld - wanneer u Telnet kuit schiet u login krijgt: herinnering zonder om het even wat te verzenden. Extra \ r onthult een andere login: herinnering. Dit zou uw manuscript kunnen verwarren. Natuurlijk, kan uw doelsysteem verschillend zijn - waard het controleren.
De dubbele citaten zijn slechts voor het bewaren van ruimten in koorden - koorden met een andere speciale steunen van de karaktersbehoefte. Ook, eerder dan doet mainline verwacht dat de code in de lijn, zou ik het de code daarna beëindigen en laten doen.
In tegenstelling tot met shell het scripting, moet u niet tegen de mogelijkheid dat bewaken de waarde van een argument ruimten bevat (d.w.z. als de argumentnaam geen ruimte toen bevat moet het niet worden geciteerd).
Ik verliet de citaten rond login: en ssword: om de volgende ruimte aan te passen
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
vastgestelde onderbreking 15

kuit Telnet $target

vastgestelde onderbreking 5
denk {
      „login: “    {verzend $AUTOUSER \ r; exp_continue}
      „ssword: “       {verzend $PASSWORD \ r; exp_continue}
      {$->}            {}
      blijf in gebreke          {send_log -- HET „HUISVUIL OF KAN \ N“ VERBINDEN NIET; uitgang}
      }

vastgestelde onderbreking 15

# grab_stats
Andere oplossingen  
 
programming4us programming4us