2016-06-01 5 views
-2

Ich muss ein Expect-Skript schreiben, um eine Datei zu öffnen und dann den Inhalt nach der Datei durchsuchen, um zu sehen, ob sie den Fehlercode 1040 hat. Dies ist der Code, den ich geschrieben habe:Ich kann keine Datei im Expect-Skript öffnen

set f1 [open syslogs.txt r] 
while {[gets $f1 line]!= -1} { 
if {[regexp {.*1040.*} $line]} { 
    puts "yes" 
} 
} 

aber wenn ich versuche, dieses Skript ausgeführt werden soll, hält es

couldn't open "syslogs.txt": no such file or directory 
while executing 
"open syslogs.txt r" 


invoked from within 

ich zeigt die Dateiberechtigungen geändert too.Can jemand mir bitte helfen mit diesem heraus .. wenn tun dies von meinem lokalen Maschine funktioniert es gut, aber wenn Sie dies tun, indem Sie eine Telnet-Sitzung zu einem Server erstellen esnt Arbeit

+0

Sind Sie sicher, dass die Datei in dem Verzeichnis vorhanden ist, in dem Sie das Skript ausführen? Versucht mit dem absoluten Pfad? – Dinesh

Antwort

0

Überprüfen Sie, was das aktuelle Verzeichnis ist (siehe pwd Befehl) in Ihrem Skript. Wenn es nicht das ist, was Sie erwarten, kann das Dinge, die relative Pfade benutzen, gründlich durchbrechen.

+0

Ja, die Datei wird im aktuellen Verzeichnis erstellt. – john

+0

Muss ich den vollständigen Pfad in der Anweisung open filename hinzufügen? – john

+0

nach Eingabe des absoluten Pfades zeigt es immer noch den gleichen Fehler – john

0

Aus dem Handbuch:

offenen Zugang filename

Öffnen Sie die Datei nur zum Lesen; Die Datei muss bereits existieren. Dies ist der Standardwert, wenn kein Zugriff angegeben ist.

der r Zugang erfordert die Datei zu existiert und kann nicht durch den Befehl selbst erstellt werden. Erschaffst du es? haben Sie versucht, mit einem ein oder einen anderen Wert des Zugriffs?

+0

die Datei existiert bereits im Verzeichnis – john

Verwandte Themen