Não consigo ver completamente o que você deseja fazer, como usá-lo em um ou em vários scripts, mas tenho uma ideia do que deu errado:
Para mim, parece que você estava tentando combinar duas coisas e, ao combiná-las, você teve problemas:
Cheira a impasse
Abrindo um arquivo em um descritor de arquivo extra do shell atual:
$ exec 3<>file
E usando um arquivo especial fifo:
$ mkfifo fifo
$ exec 3> fifo
E então, você tentou usá-los de uma forma que criou um bloqueio, por exemplo, esperando para terminar de escrever, enquanto você planeja ler os dados mais tarde - mas nunca chegará tão longe.
Ambas são ferramentas poderosas, mas são difíceis de usar juntas em um único script de shell.
Exemplos
Aqui está a seção de exemplo relevante da Bash One-Liners Explained, Part III: Tudo sobre redirecionamentos .
Observe como dois scripts independentes são usados na seção 13 ao trabalhar com o fifo:
% bl0ck_qu0te%