Automatiser les interactions avec des scripts shell ou bash
Par MD3804-GANDI le jeudi 25 mars 2010, 13:37 - Linux - Lien permanent
Peut être avez vous déjà eu besoin de simuler des réponses à des scripts shell. Par exemple lorsque vous avez un script qui demande une confirmation, un mot de passe ou tout autre intervention humaine, et que vous désirez tester le comportement du script. il existe un outil assez pratique pour le faire qui se nomme expect. Il permet d'automatiser les interactions avec des applications non-GUI (aka : graphiques). plusieurs versions sont disponibles expect-tcl8.3 ou expectk.
Expect est un langage de script pour s'interfacer avec des programmes comme FTP, Telnet, fsck, ssh et d'autres qui ne peuvent normalement pas être automatisée à partir d'un script shell. Il est donc également bon pour automatiser l'exécution de programmes sur des systèmes distants. Il s'installe par apt (debian / Ubuntu) ou yum
apt-get install expectk
Vous devez pour cela lister les questions et explicitement en donner les réponses. les wildcards sont permis afin d'être plus souple sur les questions
Voici un exemple qui répond automatiquement à un script se connectant en SSH (bouh pas bien ! :) )
expect - <<ENDSCRIPT spawn ssh $_user@$_server '$_command' match_max 100000 expect { "Are you sure you want to continue connecting (yes/no)" { sleep 1 send "yes " exp_continue } "*password:*" { sleep 1 send "PASSWORD " exp_continue } } ENDSCRIPT
En voici un autre pour un SCP :
#!/usr/bin/expect -- set timeout 30 spawn scp user@ip:~/myfile . expect { "password:" { send "password " } "yes/no)?" { send "yes " set timeout -1 } timeout { exit } eof { exit } }
Combiné avec ShUnit, il permet d'automatiser les tests facilement.
Commentaires
http://www.esplanchass.com GHD,GHD Planchas,GHD Planchas Pelo
http://www.ghdespink.com GHD Planchas,GHD Planchas Pelo,GHD
http://www.ghd-lisseur-fr.net GHD Lisseur,GHD Styler
http://www.ghdspiastras.com GHD,GHD Piastra,GHD Piastre
http://www.ghdspinkfr.com GHD,GHD Lisseur,GHD Styler
http://www.ghdsglattejerns.com GHD Glattejern,GHD Fladjern,GHD
http://www.ghdsaupink.com GHD Straightener,GHD Hair Straightener
http://www.chi-flat-iron-us.com CHI Straightener,CHI Flat Iron,CHI Hair Straightener
http://www.dreheadphonesus.com Dr Dre Headphones,Beats Headphones,Beats dre,Beats by dre