problèmes avec expect -send: spawn id exp4 pas ouvert

Mon code prévu le fait: il connecte ssh à une autre machine, envoie le mot de passe et renvoie le nom d’hôte de cette machine. Je donne un échantillon de mon code ci-dessous
#! / usr / bin / expect -f
set ipaddr [lrange $ argv 0 0]
définir le mot de passe [lrange $ argv 1 1]
définir le délai d’attente -1
faire apparaître la racine ssh @ $ ipaddr hostname
match_max 100000
attendre “* assword: *”
send – “$ password \ r”
attendre eof

Ce code s’exécute parfaitement plusieurs fois mais par intermittence, j’obtiens l’erreur suivante
send: spawn id exp4 pas ouvert
en cours d’exécution
“send -” $ password \ r “”

Pourquoi cela arrive-t-il?

Compris pourquoi. J’avais généré des clés ssh et les ai copiées sur la machine de destination. Il n’y avait donc pas d’invite “Password:”. Par conséquent, avant que l’envoi puisse se terminer, la connexion ssh était fermée.

J’ai supprimé les clés ssh de la machine de destination et exécuté à nouveau le script sans observer de problèmes