Ao responder você está dando entrada via descritor de arquivo 0, ou seja, STDIN e o programa está mostrando a saída no descritor de arquivo 1, ou seja, STDOUT. Como você pode ver, esses dois estão trabalhando em diferentes descritores de arquivos e manipular um não deve atrapalhar o funcionamento de outros.
Observe que também há o descritor de arquivo 2, ou seja, STDERR, normalmente usado para exibir mensagens de erro.
No seu caso, execute o script como:
./myscript.sh >~/script.out
Agora você pode fornecer respostas de entrada para as perguntas do script via STDIN e a saída do programa será salva em ~/script.out
.
Você também pode salvar o erro, por ex. em outro arquivo:
./myscript.sh >~/script.out 2>~/script.err
O STDOUT será salvo em ~/script.out
e o STDERR será salvo em ~/script.err
.
Você pode salvar a saída e o erro no mesmo arquivo:
./myscript.sh >~/script.all 2>&1
Agora, ~/script.all
conterá as saídas e mensagens de erro (se houver) de myscript.sh
.