Como Thomas Nyman respondeu, a solução é usar expect
ou ferramenta semelhante.
Infelizmente, expect
pode ser difícil de aprender e usar, e é um investimento significativo em tempo e esforço aprender uma linguagem que seja utilizável apenas para uma tarefa. Você pode achar mais fácil - e mais útil a longo prazo - usar Perl ou Python, ambos com bibliotecas que podem ser usadas para fazer a mesma coisa que expect
.
Para o perl, isso seria Expect.pm
Para Python, dê uma olhada em pexpect
Ambos provavelmente já estão empacotados para sua distribuição Linux - por exemplo, no debian, eles são libexpect-perl
e python-pexpect
.
BTW, embora não seja especificamente relevante para a sua pergunta, vale a pena notar que o Perl também possui bibliotecas / módulos projetados especificamente para fazer expect
- coisas semelhantes em conexões de rede - por exemplo, Net::SSH
e Net::Telnet
dos módulos do perl. Python tem bibliotecas semelhantes.