Você pode usar o programa expect .
Aqui está um script de exemplo:
spawn /path/to/program/Dynamips
expect -- "->"
send "start R1\r"
expect -- "->" {
sleep 5
send "start R2\r"
}
expect eof
Você pode invocar isso com:
expect scriptname
Precisa saber se é possível enviar uma string de comandos para um programa.
O programa é chamado Dynamips,
Depois de lançar o programa, ele aparece com "- >"
O comando que eu quero enviar para o terminal é "start R1" e "start R2" você obtém a imagem.
Também quero saber se ele pode dormir por 5 segundos e depois enviar a segunda string.
Eu tentei ecoar, mas o eco só aparece quando você sai do programa.
Qualquer ideia
Atenciosamente
Você pode usar o programa expect .
Aqui está um script de exemplo:
spawn /path/to/program/Dynamips
expect -- "->"
send "start R1\r"
expect -- "->" {
sleep 5
send "start R2\r"
}
expect eof
Você pode invocar isso com:
expect scriptname
O Expect também está disponível como um módulo Perl, se você estiver mais confortável em Perl do que em TCL.
Um snippet simples usando o módulo Perl Expect pode ser assim:
my $bob = Expect->new("bob_program");
$bob->expect(1, "Hullo!");
$bob->send("Hi!\r");
$bob->expect(1, "Bye!");
$bob->send("Later!\r");
$bob->soft_close();
Trabalhei com o expect / TCL e o perl, e devo dizer que prefiro o Perl. Se você ainda não sabe, o TCL é irritante de pegar.