Is this a feature available for common Linux terminal implementations?
Eu não acho que haja uma solução geral disponível. Não é muito comum os scripts normais exibirem a saída e aceitarem a entrada ao mesmo tempo - isso é essencialmente o comportamento do aplicativo multiencadeado, e as pessoas geralmente compilam bibliotecas de saída gráficas como ncurses nelas ...
If not, is there an ncurses program capable of doing this?
Se for, nunca ouvi falar disso. Você precisaria que ele fosse executado como um processo paralelo ao script / aplicativo principal, o que significa que você teria que usar o forking, não poderia canalizar a entrada nele ... seria complicado.
Eu acho que você tem apenas duas opções - ou escreva isso ncurses wrapper ou divida-o em dois terminais. No primeiro terminal, você executa o script e aceita stdin, mas stdout e stderr são redirecionados para um pipe nomeado.
$ mkfifo myoutput
$ function blah() {
> while true; do
> echo "Hello there. Sorry to barge in; were you busy?"; sleep 1.5;
> done
> }
$ blah 2>&1 >./myoutput
Agora você pode ler a saída em outro terminal com cat ./myoutput
enquanto stdin ainda é aceito no terminal original.