Expect - Fehler in While

S

shady

Grünschnabel
Hi,

versuche mich gerade mit Expect und bin dabei, ein File zeilenweise auszulesen, wobei das erste Argument ein Host und das zweite ein Passwort ist, jeweils durch ein Leerzeichen getrennt.

file.db (liegt im selben Verzeichnis (Home) wie das Script
Code:
Host1 PW
Host2 PW
Host3 PW

Dazu habe ich folgenden Code, der meiner Meinung nach syntaktisch richtig sein müsste.
Code:
#!/usr/local/bin/expect --

set f [open file.db r]
puts $f

while {[gets $f line] >= 0}
        {
                scan "$line" "%s %s" host pw
                puts "$host $pw"
        }
close $f

Das ganze bringt mir dann leider folgenden Fehler:
Code:
file4
wrong # args: should be "while test command"
    while executing
"while {[gets $f line] != -1}"
    (file "test2" line 6)

Vom Syntax her müsste es doch passen, oder?
Ich tippe mal auf einen Fehler beim Datei Öffnen. Hab die Rechte für file.db schon mal auf 777 geändert, aber da kommt das selbe raus.

System:
FreeBSD 7.3
expect version 5.44.1.15
 
Ok, selbst gelöst

Es muss heißen:
Code:
while {[gets $f line] >= 0} [B][COLOR="red"]{[/COLOR][/B]
                scan "$line" "%s %s" host pw
                puts "$host $pw"

Die geschwungene Klammer auf darf nicht in der naechsten Zeile stehn ... :/
 

Ähnliche Themen

Automatisierung via Netzwerk funktioniert nicht richtig

wxPython Problem

SELinux Reference Policy Problem

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben