Skripting mit Expect und Tcl
Ferngesteuert
Auch wenn sich mit der Bash oder anderen Unix-Shells viele Skripting-Aufgaben erledigen lassen, stößt man schnell an Grenzen, wenn ein Skript mit einem Kommandozeilenprogramm interagieren soll. Zum Beispiel sind viele Password-Prompts, etwa ein SSH-Login, so konfiguriert, dass sie nur Eingaben von einem Terminal verarbeiten. Auch die Ausgabe von Programmen zu verarbeiten, erfordert einiges an Anstrengung, wenn es sich um eine interaktive Session handelt.
Das Expect-Tool ist dagegen extra dafür gemacht, interaktive Prozesse zu automatisieren [1], [2]. Die auf Expect basierenden Programme sind sogenannte Chat-Skripts, die aus einer Reihe von Prompt-Antwort-Paaren bestehen. Expect basiert auf der Skriptsprache Tcl und wurde von Don Libes geschrieben. Verfügbar ist es für die meisten Linux- und Unix-Varianten. Selbst für Windows gibt es einen Port [3].
Als einfaches Beispiel für die Anwendung von Expect soll ein Skript dienen, das eine SSH-Verbindung zu einem Host aufbaut, den man auf der Kommandozeile als Argument übergibt. Die erste Zeile des Skripts in Listing 1 ist das Tcl-Konstrukt, das der Variablen »host«
mit »set«
einen Wert zuweist. Das Gebilde in eckigen Klammern extrahiert mit dem Tcl-Kommando »lindex«
aus dem Array »$argv«
den ersten Wert (die Zählung startet bei Null). Die folgende Zeile weist der Variablen »timeout«
den Wert 5 zu. Es handelt sich dabei um eine von Expect automatisch verwendete Variable, die festlegt, wie lange das Skript auf eine Eingabe wartet.
Listing 1
Diesen Artikel als PDF kaufen
Als digitalen Artikel
Diesen Artikel als PDF kaufen.
Preis € 1,99
Im ADMIN Online-Archiv
Abonnieren Sie das ADMIN Online-Archiv, und Sie erhalten Zugriff auf alle ADMIN-Artikel im HTML- und/oder PDF-Format.
Alle Angebote zum ADMIN-Magazin im Online-Shop
Versandartikel |
Onlineartikel |




