URL: https://linuxfr.org/forums/programmation-perl/posts/perl-et-expect Title: Perl et expect Authors: gremous Date: 2008年12月26日T21:02:14+01:00 Tags: Score: 1 Bonjour, je tente d'utiliser expect avec Perl mais je bute sur un sérieux problème. Je sais qu'il existe un module expect.pm mais je veux utiliser le expect normal. J'ai plusieurs lignes à envoyer à expect et ça bloque dès que j'ai un "send". my $commandes = "set timeout 5\n". "spawn telnet 192.168.1.1\n". "sleep 5\n". "send \"root\r\"\n". "sleep 1\n". "send \"xxxxxx\r\"\n". "sleep 1\n". "send \"ifconfig ppp0\r\"\n". "sleep 1\n". "send \"exit\r\"\n"; open ( my $pipe, '-|', "echo \"$commandes\" | expect 2>&1" ); while ( my $ligne = <$pipe> ) {print "$ligne\n"} Je mets mes commandes expect dans une variables pour plus de lisibilité. Je lance ensuite un shell en envoyant cette variable vers expect. J'ai mis des sleep au lieu d'attendre une chaine de caractère afin de simplifier au maximum en attendant de résoudre le problème. Les trois première lignes semblent s'exécuter car telnet se lance (je le vois avec ps dans un autre shell) puis j'ai un délai de 5 secondes avant d'avoir une erreur. Voici ce qui s'affiche: spawn telnet -b 192.168.5.201 192.168.14.254 ... attente de 5 secondes... usage: send [args] string while executing ""send ifconfig ppp0 Une idée de l'origine du problème ?