Attendez que l'invite de script expect
J'ai besoin d'un expect
script d'attente d'une commande à la fin, et puis le journal de telnet
. Voici le script:
spawn telnet host
send "username\r"
send "password\r"
sleep 3
send "custom_command\r"
while {???}
{
sleep 1
}
send "logout\r"
expect eof
La partie que je ne sais pas comment la phrase est ???
. En gros, j'ai juste besoin d'attendre pour le prompt
à se montrer, et dès qu'il se montre, le script doit se terminer. J'imagine qu'il doit être quelque chose comme [gets line != "prompt>" ]
.
OriginalL'auteur Ulrik | 2014-08-26
Vous devez vous connecter pour publier un commentaire.
La
attendre
commande de s'attendre semble approprié ici.Quelque chose comme
expect "prompt\n"
suivie par l'envoi de la déconnexion.Une remarque, si c'est normal telnet système, vous devez généralement attendre d'être invité à entrer le nom d'utilisateur et le mot de passe avant de l'envoyer. Voir comment faire pour automatiser session telnet à l'aide d'attendre ou attendons de script pour automatiser la connexion telnet
OriginalL'auteur ssnobody
Vous devriez vraiment s'attendre à quelque chose avant de vous envoyer quelque chose, pour obtenir le bon timing. Quelque chose comme:
OriginalL'auteur glenn jackman
J'ai essayé le fait de s'attendre de commande, mais il ne fonctionne pas, après quelques recherches, d'essais et d'erreur, j'ai réalisé les opérations suivantes:
expect "prompt>\r"
au lieu deexpect "prompt>"
expect "prompt>\r" {
set timeout -1
attendre l'invite à l'infini, au lieu de 10 secondesDonc, la réponse est:
OriginalL'auteur Ulrik