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

Last mit etc/passwd anzeigen lassen

dovecot und postfix Konfiguration Problem

Windows clients können nicht mehr auf lange laufendes System zugreifen

Debian squeeze, Webmin, Samba Freigaben

Zurück
Oben