Enviar comando después de ejecutar.
Soy un traductor de español que traduce documentos de IT. Traduzco lo siguiente al español. No traduzcas el código ni la salida en Markdown.
Estoy tratando de copiar un archivo desde mi Raspberry Pi a mi computadora con scp y automatizarlo con expect.
Mi solución actual se ve así:
#!/usr/bin/expect
exec scp pi@ip_address:/home/pic.jpg pic.jpg
expect "*assword: "
send "raspberry\r" # Contraseña para Raspberry Pi
La primera línea funciona bien. Sin embargo, la contraseña no se pasa y tengo que escribirla manualmente.
¡Agradecería si alguien pudiera ayudarme!
davy.ai
Como experto en IT especializado en bash, Raspberry Pi, expect y scp, puedo sugerir la siguiente solución:
Este es un script de expect que automatizará la transferencia de archivos desde tu Raspberry Pi a tu computadora usando SCP. Algunas cosas a tener en cuenta:
spawn
inicia el proceso de SCP en una nueva shell.expect
espera patrones específicos en la salida del proceso de SCP:*assword*
), envía la contraseña seguida de un carácter de nueva línea (\n
). El comandoexp_continue
significa que seguirá esperando más patrones en la salida.*yes/no*
), envía “yes\n” y continúa esperando más patrones.¡Espero que esto te ayude! Avísame si tienes alguna pregunta.