Está funcionando agora, mas eu mudei o script para:
#!/usr/bin/expect -f
set timeout 15
set user "myusername"
set server "x.x.x.x"
spawn ssh -l $user -p AAAA $server
expect "[email protected]'s password: " { send "the password\r" }
interact
Eu tenho um programa que é executado a partir da linha de comando. Assim que é executado, ele pede um valor de texto e espera que a tecla de retorno seja pressionada depois disso.
É possível criar um script bash que execute esse programa, espere um pouco para que o prompt apareça (digamos 2 segundos) e depois forneça o texto e a tecla enter?
EDITAR:
Eu criei este script com expectativa, mas não está funcionando:
#!/usr/bin/expect -f
set timeout 15
set user "myusername"
set server "x.x.x.x"
spawn ssh -l $user -p AAAA $server
expect "[email protected]'s password: "
send "the password\r"
onde AAAA é a porta e x.x.x.x o IP.
quando executo este script, ele termina quase imediatamente e nada acontece.
Está funcionando agora, mas eu mudei o script para:
#!/usr/bin/expect -f
set timeout 15
set user "myusername"
set server "x.x.x.x"
spawn ssh -l $user -p AAAA $server
expect "[email protected]'s password: " { send "the password\r" }
interact
Tags command-line bash programming input