O problema urgente de ler a entrada do teclado no pipeline é resolvido pela resposta em https://stackoverflow.com/questions/15230289/read-keyboard-input-within-a-pipelined-read-loop :
mycommand-outputpiped | while read line
do
# do stuff
read confirm < /dev/tty
done
Por que funciona? Não tty
redireciona para a entrada padrão? Posso obter um descritor de arquivo /dev/tty
e usá-lo read -u fd
em vez disso? TIA