Comment voulez-vous enregistrer et analyser une sortie de commande en Attendre?
Je suis à mi-chemin à travers l'écriture d'un script expect sur un serveur Linux qui est censé telnet à un routeur afin de recueillir certaines informations système. Jusqu'à présent, mon script peut réussir à faire la connexion, exécutez un routeur de commande, de le déconnecter et de le résilier.
La commande affiche quelques lignes dont j'ai besoin pour analyser, quelque chose que je ne suis pas sûr de savoir comment faire en Attendre. Comment puis-je enregistrer la sortie, grep une ligne, puis une colonne de la ligne, et enfin sauvegarder le résultat dans un fichier? Si possible, j'aimerais Attendre entièrement plutôt que de les contourner (par exemple s'Attendre à embdded en Bash).
Merci pour votre temps.
jk04
OriginalL'auteur jk04 | 2010-01-16
Vous devez vous connecter pour publier un commentaire.
Deux conseils pour attendre le développement:
autoexpect
d'établir un cadre pour votre automatisationexp_internal 1
de montrer avec beaucoup de détails ce qui est fait en interne. Celui-ci est indispensable lorsque vous ne pouvez pas comprendre pourquoi votre expression régulière n'est pas capturer ce que vous attendez.OriginalL'auteur glenn jackman
fondamentalement, $expect_out(tampon) [1]. contient la sortie de la dernière attendre correspondre à l'actuel. vous pouvez trouver votre sortie de la commande.
et pour la manipulation de la chaîne, vous pouvez tout simplement utiliser le tcl intégré [2][3].
je pense que non, vous pouvez vérifier la discussion sur "expect_out(tampon) est le contenu de la précédente envoyer", wiki.tcl.tk/17378
devrais-je dire oui? depuis le texte correspondant à tendance actuelle est à la sortie de la dernière attendre à l'actuel:)
OriginalL'auteur Dyno Fu
J'ai affronté et résolu un problème similaire pour interagir avec bash. Je crois que l'approche généralise à tout autre environnement interactif qui fournit des non-op, fixe en sortie de chaîne.
En gros, j'enveloppe la commande avec deux cordes et ensuite rechercher le modèle qui contient les chaînes de caractères au début et à la fin, et enregistrer le contenu entre eux. Par exemple:
Je soupçonne que cette approche serait de travailler avec une coquille de caractères de commentaire, ou un simple statut de commande qui retourne une sortie connues.
Puis vous pouvez faire ce que vous avez besoin avec le contenu de 'var'.
OriginalL'auteur stephen.z