expect
(e pexpect
) foram projetados para automatizar a interação com programas que desejam entradas "interativas". expect
permite automatizar o início de um programa, aguardar seu prompt, enviar uma resposta, aguardar outro prompt, etc.
Este é um exemplo simples de um script de espera que inicia batch
e cria um trabalho para agendar. Inicia batch
, aguarda um prompt, cria um job, aguarda um prompt, envia um control-D (
), aguarda que batch
4job 271 at Sat Oct 25 14:31:00 2014
responda com a confirmação da criação do job, como batch
e em seguida, aguarda um segundo para que expect
seja concluído e saia:
#!/usr/bin/expect --
spawn batch
expect "at>"
send "echo Hello from batch\r"
expect "at>"
send "#!/usr/bin/expect --
spawn batch
expect "at>"
send "echo Hello from batch\r"
expect "at>"
send "%pre%4"
expect "job"
sleep 1
4"
expect "job"
sleep 1
expect
tem muitos recursos avançados. Você pode criar procedimentos e manipular variáveis. Para mais informações, consulte a expect
homepage e o expect
FAQ . A expect
página wikipedia também é muito informativa.
Ainda não experimentei, mas talvez seja possível criar um script %code% que leia as tarefas stdin e filas. Como alternativa, pode-se criar um script shell / sed / awk / python para ler a partir de entrada stdin e escrever um script esperado na saída.