Executando um programa e fornecendo entrada

1

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.

    
por SpaceDog 11.06.2015 / 16:56

1 resposta

1

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
    
por 11.06.2015 / 20:50