Damit rechnen

Erwarten Sie, eine Erweiterung der Skriptsprache Tcl von Don Libes geschrieben, ist ein Programm, um Wechselwirkungen mit Programmen, die eine Text-Terminal-Schnittstelle freizulegen automatisieren. Erwarten Sie wurde ursprünglich im Jahr 1990 für Unix-Systeme geschrieben, aber ist jetzt auch für Microsoft Windows und anderen Systemen zur Verfügung. Es wird verwendet, um die Kontrolle über interaktive Anwendungen wie telnet, ftp, passwd, fsck, rlogin, Spitze, ssh, und andere, zu automatisieren. Erwarten Sie verwendet Pseudo-Terminals oder emuliert eine Konsole, startet das Zielprogramm, und dann mit ihm kommuniziert, so wie ein Mensch wäre, über das Terminal oder Konsolenschnittstelle. Tk weiterer Tcl Erweiterung kann verwendet werden, um ein GUI bereitzustellen.

Grundlagen

Erwarten Sie verfügt Übereinstimmung mit regulären Ausdrücken und allgemeine Programmfunktionen, so dass einfache Skripte, um intelligent zu steuern Programme wie telnet, ftp und ssh, die alle fehlen eine Programmiersprache, Makros oder andere Programmmechanismus. Das Ergebnis ist, dass zu erwarten Skripten bieten alte Werkzeuge mit wichtigen neuen Leistungsstärke und Flexibilität.

Verwendung

Erwarten Sie dient als "Klebstoff", bestehende Hilfsprogramme miteinander zu verknüpfen. Die allgemeine Idee ist, um zu versuchen, um herauszufinden, wie man erwarten zu nutzen bestehenden Instrumente des Systems, anstatt herauszufinden, wie man ein Problem innerhalb Erwarten zu lösen.

Ein Schlüssel Nutzung Erwarten beinhaltet kommerzielle Software-Produkte. Viele dieser Produkte bieten irgendeine Art von Befehlszeilenschnittstelle, die jedoch in der Regel nicht die Macht benötigt, um Skripte zu schreiben. Sie wurden gebaut, um die Benutzer die Anwendung des Arzneimittels zu bedienen, aber das Unternehmen oft nicht die Mittel nicht ausgeben, um eine robuste Skriptsprache in vollem Umfang umzusetzen. Ein Expect-Skript kann ein Shell-laichen, sehen Sie Umgebungsvariablen, führen einige Unix-Befehle, um weitere Informationen abzurufen, und dann in der Produktbefehlszeilenschnittstelle mit den notwendigen Informationen, um das Ziel des Benutzers zu erreichen bewaffnet eingeben. Nach der Suche nach Informationen im Inneren des Produkts Befehlszeilenschnittstelle, kann das Skript eine intelligente Entscheidung darüber, was Maßnahmen zu ergreifen, wenn überhaupt zu machen.

Jedesmal, wenn ein Erwarten Operation abgeschlossen ist, werden die Ergebnisse in einer lokalen Variable $ expect_out gespeichert. Dies ermöglicht das Skript Informationen ernten, die zurück an den Benutzer zuzuführen, und es ermöglicht auch bedingte Verhalten, was als nächstes zu senden basierend auf den Umständen.

Eine übliche Anwendung Erwarten ist die Einrichtung eines Test-Suite, sei es für die Programme, Dienstprogramme oder Embedded-Systeme zu sein. DejaGnu ist eine Testsuite geschrieben mit Erwarten zur Verwendung beim Testen. Es wurde ausgiebig zum Testen gcc verwendet und ist sehr gut zum Testen Fernziele wie die Embedded-Entwicklung geeignet.

Man kann automatisiert die Erzeugung eines erwarten Skript mit einem Werkzeug namens "autoexpect '. Dieses Tool stellt fest, Ihre Aktionen und erzeugt eine rechnen Skript mit Heuristiken. Obwohl generierte Code kann große und etwas kryptisch sein, kann man immer zwicken das generierte Skript, um den genauen Code zu erhalten.

Ein weiteres Beispiel ist ein Skript, das ftp automatisiert:

Unten ist ein Beispiel, das sftp automatisiert:

es sei darauf hingewiesen, dass die Verwendung von Kennwörtern als Befehlszeilenargumente, wie in diesem Beispiel, ist eine riesige Sicherheitslücke, wie jeder andere Benutzer an der Maschine können dieses Passwort, indem Sie "PS" gelesen werden.

ein weiteres Beispiel für automatisierte ssh Login in der Benutzermaschine

Meinung

Pros

Erwarten Sie können in regelmäßigen Abständen durch die Verwendung von cron, um Systemverwaltungsaufgaben zu kapseln ausgeführt werden. Das funktioniert, weil Erwarten Sie bloß nutzt Systemverwaltungsprogramme bereits auf dem Host-Computer. Keine zusätzlichen Tools müssen erlernt werden. Wenn der Programmierer bereits gelernt hat, Tcl, dann die Migration zu erwarten ist eine relativ einfache Übergang. Die gleichen Programmierstrukturen und Syntax existieren, aber mit zusätzlichen Features eingebaut.

Es gibt große Unterstützung in der Industrie für die Verwendung Erwarten Sie für viele in-house-Verwaltungsaufgaben. Es wird allgemein von Firmen wie Silicon Graphics, IBM, HP, Sun, Xerox, Amdahl, Tektronix, AT & amp verwendet; T, Computervision und der Weltbank, um in-house automatisierte Tests für Entwicklungsprojekte, Dateiübertragungen ausführen, Kontoverwaltung und Netzwerktests.

Als TCL-Erweiterung erwarten nutzt die gleiche Syntax, die regelmäßiger und gleichmäßiger als Sprachen wie bash, csh und Perl ist.

Erwarten Sie geht auf große Längen zu abstrahieren die Unterschiede zwischen Terminal Verhalten auf verschiedenen Plattformen. Andere Programme ähnlich wie erwarten, sind in der Regel fehlen in dieser Hinsicht. Denn es ist eine Tcl-Erweiterung, die komplette Ausstattung von Tcl stehen zur Verfügung in erwarten Skripten. Zusätzliche Pakete und Erweiterungen für Tcl kann leicht verwendet werden, um die Eigenschaften des Expect-Skript erweitern.

Cons

Erwarten Sie Skripte müssen vorsichtig geschützt werden, wenn auch die Anmeldeinformationen wie Benutzername / Passwort-Kombinationen. Jeder, der Lesezugriff auf das Skript hat auch Zugriff auf die gespeicherten Anmeldeinformationen.

Alternativen

Verschiedene Projekte umzusetzen Expect-ähnliche Funktionalität in anderen Sprachen wie C #, Java, Perl, Python und Ruby. Diese sind im Allgemeinen nicht exakt Klone der ursprünglichen erwarten, aber die Konzepte sind in der Regel sehr ähnlich zu sein.

C #

  • Expect.NET Funktionen für C # Erwarten

Java

  • expect4j Versuch einer Java Klon der ursprünglichen Erwarten
  • ExpectJ eine Java-Implementierung der Unix erwarten Dienstprogramm
  • Expect for Java reine Java-Implementierung des Erwarten Werkzeug

Perl

  • Expect.pm Perl-Modul

Python

  • Pexpect Python Modul zur Steuerung interaktiver Programme in einem Pseudo-Terminal
  • WinPexpect Hafen von pexpect auf der Windows-Plattform

Rubin

  • RExpect ein direkter Ersatz für die expect.rb Modul in der Standardbibliothek.
  • Expect4r Interagieren Sie mit Cisco IOS, IOS-XR und Juniper JUNOS CLI
(0)
(0)
Kommentare - 0
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha