J'écris un script à l'aide d'attendu dans lequel je dois rlogin à certains hôtes et après cela, j'ai besoin d'envoyer des commandes. Maintenant, je veux revenir à cet hôte et Relogin à nouveau à un autre hôte et envoyez des commandes. Mais la course de mon script n'attend pas pour le premier hôte pour compléter ses travaux et sortir à la place, il envoie d'autres commandes entre le processus précédent. Comment puis-je atteindre cet effet en utilisant Attendez-vous s'il vous plaît guide?
exemple de code est comme suit: p>
4 Réponses :
Vous oubliez de "toucher entré". Après l'envoi de sortie, le moyen d'attendre le processus de fin d'OS attendre EOF code>:
C'est déjà là dans mon code, j'ai oublié de le mentionner ici dans mon code
Qu'est-ce qu'il y a déjà? Le EOF code> ou le
\ r code>? Veuillez mettre à jour votre question pour être plus précis.
Attendez-vous également à EOF ne fonctionne pas. Souvenir Script envoie le reste des commandes entre le processus précédent.
Pouvez-vous élaborer sur "SCRIMT STOCT ENVOYER DE REPOS DES COMMANDES ENTRE LE PROCESSUS précédent"
J'ai essayé cela et cela a fonctionné. P>
spawn ssh host1 expect ":" send pwd1 expect "%" send "echo hi\r" expect "%" send "exit\r" expect eof spawn ssh host2 expect ":" send pwd2
Essayez cette construction lorsque sur Commande CODE> Est-ce que le temps prend du temps:
Timeout code> Vous attendez continuellement avec
exp_continue < / code> commande pour
% invite% code>. p> p>
J'ai trouvé ce post après avoir couru dans un problème de condition de course: Parfois, le script est terminé comme attendu em> et d'autres fois ce n'est pas. Ajout d'une déclaration code> code> sur le script assurait le résultat souhaité à chaque fois:
Attrapez «quelques dernières lignes», a retiré avec succès une condition de course pour moi. La sortie de l'attente est maintenant toujours complète. Au lieu de parfois parfois.