Timeout funktioniert im Expect-Skript nicht


1

Ich habe das folgende Expect-Skript erstellt, um die Anmeldung bei einem VPN zu automatisieren:

 #!/usr/bin/expect

 set PASS [lindex $argv 0]

 set timeout 10
 spawn  vpnc
 expect    :            {send $PASS\r}
 expect eof

Wenn ich jedoch ein falsches Passwort-Argument gebe, treten die erwarteten 10 Sekunden nicht auf.

Warum tritt diese Zeitüberschreitung von 10 Sekunden nicht auf?

Antworten:


1

Ich würde das Timeout explizit erwarten:

set timeout 10
spawn  vpnc
expect :
send [lindex $argv 0]\r
expect {
    timeout {error "incorrect password"; exit 1}
    eof
}

Also, worum geht es? , wie löst du das? wo irre ich mich
THE_BIG_EXPERT

1
Ich vermute, dass, während Sie "eof" erwarten, wenn das Timeout auftritt, Ihr Skript nichts damit macht. Hast du meinen Code getestet? Offensichtlich ist "der Punkt", dass ich versuche, Ihnen bei Ihrem Problem zu helfen. Was wirst du mit meinen Bemühungen machen?
glenn jackman

ok ich werde deine lösung auf meiner maschine überprüfen, ich werde zurückkehren, um dir zu geben, was passiert ist - :)
THE_BIG_EXPERT

ABSTIMMUNG FÜR IHRE ARBEITEN
THE_BIG_EXPERT
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.