Se você der o comando exec < file
, então o shell bash atual lerá sua entrada do arquivo , em vez de std-in.
Eu assumo o que acontece quando você dá os comandos individualmente no terminal é o comando exec funciona corretamente, e seu shell bash (interativo) atual começa a ler data-file
(ao invés do seu teclado). Eu acho que esse arquivo de dados não contém comandos bash e, portanto, o bash responde com o comando não encontrado.