Wie meinst du speichern und analysieren Sie die Ausgabe eines Befehls in Erwarten?
Ich bin auf halbem Weg durch das schreiben eine Expect-Skript auf einem Linux-server soll per telnet auf einen router, um zu sammeln gewisse Informationen über das system. So weit mein Skript erfolgreich die Verbindung herstellen, führen Sie ein router-Befehl, trennen und beenden.
Zeigt der Befehl ein paar Zeilen, die ich brauche, um zu analysieren, was ich bin nicht sicher, wie es zu tun Erwarten. Wie kann ich die Ausgabe von grep eine Zeile, dann eine Spalte aus der Zeile, und speichern Sie schließlich das Ergebnis in einer Datei? Wenn möglich, würde ich mag zu verwenden, Erwarten ganz eher als ein work-around (zum Beispiel Erwarten embdded in der Bash).
Vielen Dank für Ihre Zeit.
jk04
InformationsquelleAutor jk04 | 2010-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei Tipps für Entwicklung erwarten:
autoexpect
zu legen, die ein framework für die Automatisierungexp_internal 1
zu zeigen, wortreich, was zu erwarten ist, tun intern. Dieser ist unverzichtbar, wenn Sie nicht herausfinden können, warum der reguläre Ausdruck nicht das erfassen, was Sie erwarten.InformationsquelleAutor glenn jackman
grundsätzlich, $expect_out(Puffer) [1]. enthält die Ausgabe vom letzten erwarten-entsprechen dem aktuellen. Sie finden den Befehl ausgegeben.
und für die string-manipulation, können Sie einfach beschäftigen die tcl-built-in [2][3].
ich denke Nein, Sie können überprüfen, dass die Diskussion über "expect_out(Puffer) hat die Inhalte der vorangegangenen senden", wiki.tcl.tk/17378
soll ich ja sagen? da der text ergänzt durch die aktuellen Muster ist die Ausgabe vom letzten erwarten, dass das aktuelle:)
InformationsquelleAutor Dyno Fu
Habe ich angegangen und gelöst werden, ein ähnliches problem für die Interaktion mit der bash. Ich glaube, der Ansatz verallgemeinert, um beliebige andere interaktive Umgebung bietet eine no-op, Feste string-Ausgabe.
Grundsätzlich habe ich wickeln Sie den Befehl mit zwei festen Zeichenfolgen und suchen Sie dann nach dem Muster, das diese Zeichenfolgen am Anfang und Ende, und speichern Sie den Inhalt zwischen Ihnen. Zum Beispiel:
Ich vermute, dass dieser Ansatz funktionieren würde, mit einem shell-Kommentar-Zeichen, oder eine einfache status-Befehl gibt eine bekannte Ausgabe.
Dann Sie können tun, was immer Sie brauchen, mit der der Inhalt von 'var'.
InformationsquelleAutor stephen.z