Andere Lösungen / Sprachen, die dem TCL-basierten Expect überlegen sind? [geschlossen]

8

Ich bin erstaunt, wie Expect (TCL) viele Dinge automatisieren kann, die ich normalerweise nicht tun könnte.

Ich dachte, ich könnte Expect genauer untersuchen, indem ich ein Buch lese, aber bevor ich das tue, möchte ich fragen, ob es andere Lösungen / Sprachen gibt, die das tun können, was Expect verspricht?

z. Ich habe gelesen, dass Leute Expect mit Awk und Perl vergleichen.

Könnten Awk und Perl dasselbe tun?

Wie wäre es mit anderen Sprachen wie Python und Ruby?

Ist das de-facto Automatisierungswerkzeug zu erwarten oder gibt es andere Lösungen / Sprachen, die überlegen sind?

    
never_had_a_name 19.09.2010, 15:11
quelle

4 Antworten

9

Da ist mehr dran.

Eigentlich ist das Original Expect - das Tcl Expect - das Beste. Es unterstützt besser "interagieren" und verschiedene pty Exzentrizitäten als jeder seiner Nachfolger. Es hat keinen Vorgesetzten, für was es tut.

JEDOCH nutzen die meisten Expect-Benutzer gleichzeitig einen so kleinen Teil der Möglichkeiten von Expect, dass ihnen diese technische Überlegenheit gleichgültig ist. In fast allen Fällen rate ich jemandem von Perl, Expect.pm zu benutzen, jemandem, der mit Python vertraut ist, sich auf Pexpect zu verlassen, und so weiter.

Naive Vergleiche von Perl mit "... Awk und auch Perl" sind unbegründet.

In der Zusammenfassung sind alle gängigen Skriptsprachen - Lua, Awk, Sh, Tcl, Ruby, Perl, Python, ... - ungefähr gleich. Erwarte leicht, aber sehr effektiv diesen gemeinsamen Kern in Richtung Pty-Awareness (es gibt ein bisschen mehr zu der Geschichte, die wir im Moment vernachlässigen können). Grob gesagt, wenn Ihre Automatisierung die Eingabe eines unsichtbaren Passworts erfordert, möchten Sie Expect. Awk und Perl bauen diese Fähigkeit NICHT ein.

Es gibt andere Automatisierungswerkzeuge für andere Kontexte.

    
Cameron Laird 19.09.2010, 19:50
quelle
7

Sehen Sie sich Expect für Perl an

    
user449592 19.09.2010 16:02
quelle
4

Ajsie fragt: "Von welchen anderen Automatisierungswerkzeugen sprichst du?"

Ich beantworte eine andere Frage: "Welche anderen Kontexte habe ich im Sinn?" Die Antwort: jede andere interaktive Umgebung als eine andere. Das ist zum Beispiel nicht für die Automatisierung von GUI-Point-and-Clicks. Expect ist auch nicht für Win * -Anwendungen ohne Konsole verfügbar, selbst wenn sie aussehen, als ob sie zeichenorientiert sind (z. B. existieren).

Eine aufregende Gegenrealisierung: Expect is für die Automatisierung verrückter Geräte, die die Kontrolle über eine terminähnliche Verbindung ermöglichen. Wenn Ihr Dieselmotor (oder, noch typischer, das Fernmeldegerät) sagt, dass er durch Anschließen eines Telnet-ähnlichen Prozesses überwacht werden kann (z. B. durch eine serielle Leitung), befinden Sie sich in einer Domäne, in der Expect eine Chance hat um seine Magie zu wirken.

    
Cameron Laird 19.09.2010 20:13
quelle
2

Sehen Sie sich Pexpect für Python an

    
dekomote 19.09.2010 15:16
quelle

Tags und Links