O read interno não funciona.
while read line ; do read done < file.txt exec 3>&0 #Abrir descritor de arquivo 3 que é copia de stdin, while read line ; do read -u 3 done < file.txt A opção -u diz para read usar um descritor de arquivo especifico. O problema do read interno não funcionar é porcausa de um conflito já que o read1 usa stdin e o read2 também usa stdin. Cada descritor suporta uma informação por vez e o read1 + read2 estava enviando mais de uma informação.