Seguro que alguna vez habeis tenido que programar algún script que precisaba de interacción humana porque pedía usuario y password y no había forma de pasarle estos parámetros al invocar el programa.
Para esta problemática se inventó expect, gracias a expect podremos esperar respuesta por parte del comando ejecutado y responder en consecuencia.
Lo mejor de todo es que podemos empotrar código expect dentro de nuestros scripts en bash.
Voy a poner un ejemplo en el que se realiza una conexión por telnet y reinicia el router:
#!/bin/bash
/usr/bin/expect -- << EOF
spawn telnet 192.168.1.1
expect "Trying 192.168.1.1..."
expect "Connected to 192.168.1.1."
expect "Escape character is '^]'."
expect "BCM96348 ADSL Router"
expect "Login:"
send "1234\r"
expect "Password:"
send "1234\r"
expect ">"
send "reboot"
send "\r"
expect "The system shell is being reset. Please wait..."
EOF
Así de fácil ;)
lunes, agosto 23, 2010
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario