O seguinte código /bin/sh
abre o descritor de arquivos 3 como uma cópia da entrada padrão. Dentro do loop, o read keypress
lê esse novo descritor de arquivo e não o arquivo alimentado no próprio loop. No final, o descritor de arquivo é explicitamente fechado.
exec 3<&0
while read -r foo bar baz; do
printf 'Processing %s, %s and %s\n' "$foo" "$bar" "$baz"
printf 'Press <enter> to continue: ' >&2
read keypress <&3
done <file
exec 3<&-
echo 'Done.'
Isso permite que você use, por exemplo,
yes | ./script.sh
para "pressionar automaticamente enter " em cada prompt.