8
votes

D'autres solutions / langues supérieures à l'attente de TCL?

Je suis surpris par la façon dont l'attente (TCL) peut automatiser beaucoup de choses que je ne pouvais normalement pas faire.

Je pensais pouvoir creuser plus profondément attendre en lisant un livre, mais avant de faire cela, je veux demander s'il y a d'autres solutions / langues qui pourraient faire ce qui s'attend

par exemple. J'ai lu que les gens se comparent attendent avec AWK et Perl.

pourrait avoir mal et perl faire la même chose?

Que diriez-vous d'autres langues comme Python et Ruby?

s'attend à ce que l'outil d'automatisation de facto ou y a-t-il d'autres solutions / langues plus supérieures?


3 commentaires

Je pense que c'est de facto parce que c'était le premier et il était basé sur TCL qui est / était assez populaire dans certains milieux, par exemple. Des trucs intégrés comme des routeurs Cisco. Donc, si vous connaissez déjà TCL afin de configurer le routeur, pourquoi ne pas utiliser un cadre d'automatisation compatible avec elle?


Attendre est devenu la norme dans de telles choses. Vous pouvez trouver attendre des implémentations comme indiqué dans les réponses, mais je doute que vous trouverez quelque chose Supérieur .


Pas "un" livre, "the" livre. Le Attendez-vous à ce que le livre reste très apprécié, bien que ce qu'il dit à propos de TCL est un peu obsolète. (Eh bien, que vous attendez-vous pour un livre sur le logiciel informatique que cet ancien?)


4 Réponses :


2
votes

Consultez PEXPECT pour Python


1 commentaires

Semble stimulé pendant 2,5 ans



7
votes

Vérifiez Attendez-vous pour Perl


1 commentaires

On pourrait soutenir que la mise en œuvre de Perl n'est pas supérieure en soi, juste une fonction similaire.



9
votes

Il y en a plus.

Indiquablement, l'original attend - le TCL attend - est le meilleur. Il est préférable de soutenir "Interact" et diverses excentricités PTY que l'un de ses successeurs. Il n'a pas de supérieur, pour ce que ça fait.

Cependant, dans le même temps, on s'attend à ce que les utilisateurs exploitent une telle petite fraction des capacités d'attendu que cette supériorité technique est une question d'indifférence. Dans presque tous les cas, je conseille à quelqu'un de venir de Perl à utiliser attendre. Dpm, quelqu'un familiarisé avec Python à compter sur PEXPPECT, etc.

Les comparaisons naïves de Perl avec "... awk et aussi perl" sont mal fondées.

Dans l'abstrait, toutes les langues de script communes - Lua, Awk, Sh, TCL, Ruby, Perl, Python, ...-- sont à peu près les mêmes. Attendez-vous légèrement mais prolonge très efficacement ce noyau commun dans la direction de PTY-sensibilisation (il y a un peu plus à l'histoire que nous pouvons négliger pour le moment). À peu près parlant, si votre automatisation implique d'entrer un mot de passe invisible, vous souhaitez attendre. Awk et Perl ne construisent pas dans cette capacité.

Il existe d'autres outils d'automatisation pour d'autres contextes.


7 commentaires

De quels autres outils d'automatisation parlez-vous?


"Lua, Awk, Sh, TCL, Ruby, Perl, Python, ...-- sont à peu près les mêmes" mon opinion personnelle est que vous devez être absent de votre esprit pour comparer des langages entièrement éclairés comme Lua, Ruby et Python avec awk et sh.


@Aaron: Je vois que vous n'avez pas regardé en détail en détail à la folie rave Autoconf ... (Ce sont toutes des langues de programmation réelles - pas seulement Turing-complète, mais aussi en cours d'utilisation dans le monde réel - Mais ils ont des opérations de base différentes et des domaines d'applicabilité différents.)


@Donal. Je ne dis pas qu'ils ne sont pas des langues réelles. Je dis que vous ne voudrez pas écrire un véritable programme dans l'un d'entre eux. Modifier les bits "avec une aiguille magnétisée et une main ferme" Turing est complète (mais pas utilisée dans le monde réel) mais cela ne signifie pas que tu voudrais. Awk et Sh sont censés faire un petit ensemble de choses et les faire extrêmement bien. Ils réussissent à cela mais pas beaucoup plus.


@Aaron: C'est un exemple idiot (ce n'est pas Turing complet en soi ), mais le point clé que je faisait est que vous n'ayez pas tort dans lequel vous apportez vos préjugés. (Je ne voudrais pas personnellement écrire un vrai programme à Lua, mais cela ne signifie pas que ce n'est pas un véritable langage de programmation! Juste que certaines décisions de conception impliquées ne s'assoient pas avec mes préférences.)


@Donal, je défie de vous présenter 5 grands programmes écrits au cours des dix dernières années à Awk ou à Sh. Les nouvelles et meilleures langues sont venues pour la rédaction de grands programmes et l'un ni l'autre n'avaient jamais eu l'intention de commencer par. Cela ne veut pas dire qu'ils ne sont pas de vraies langues, elles sont. C'est qu'ils manquent Batteries inclus le support de la bibliothèque pour une large gamme de domaines. Cela les rend inférieur pour Objet général Programmation. Cependant, ils sont toujours Supérieur pour Projets spécialisés . Tout grand programme écrit dans AWK pourrait être mieux écrit à Python.


@Aaron: si la batterie est incluse ou non n'est pas aussi importante que vous semblez penser - télécharger des extras n'est pas dure - mais la difficulté d'ajouter des bibliothèques pour des fonctionnalités supplémentaires est une raison clé pour laquelle je n'écris pas grand awk programmes. (En fait, pour ce que je fais professionnellement, Java s'avère être la meilleure solution.)



4
votes

Ajsie demande: "Quels autres outils d'automatisation parlez-vous?"

Je vais répondre à une question différente: "Quels autres contextes dois-je avoir en tête"? La réponse: tout environnement interactif autre qu'un stdio un. Attendez-vous, ce n'est pas l'automatisation des points d'interface graphique et des clics, par exemple. Attendez-vous également non disponible pour les applications win * non-console, même si elles semblent être orientées sur les personnages (tels existent).

Une contre-réalisation passionnante: Attendez-vous est pour l'automatisation de matériel farfelu qui permet de contrôler par une connexion de type terme. Si votre moteur diesel (ou plus typiquement, le fer de télécommomm) dit qu'il peut être surveillé en accrochant un processus de type Telnet (même via une ligne de série de style ancienne, par exemple), vous êtes dans un domaine où l'attente a une chance travailler sa magie.


0 commentaires