Você deve poder usar um pipe nomeado para isso.
Como exemplo:
echo foo > file1
echo bar > file2
crie um novo script no mesmo diretório da seguinte forma:
combine.sh:
#!/bin/bash
[ -p foobar ] && rm foobar
trap "[ -p foobar ] && rm foobar && exit" SIGINT
while [ true ]; do
mkfifo foobar
echo "Writing File"
cat file1 file2 > foobar
rm foobar
done
Então
chmod +x combine.sh
./combine.sh
Isso criará um pipe chamado foobar
no mesmo diretório. Agora você pode ler este pipe de qualquer processo como se fosse um arquivo real.
Por exemplo, em um terminal separado:
$ cat foobar
foo
bar
É claro que você pode executar isso em segundo plano usando ./combine.sh 2>&1 > /dev/null &
ou executá-lo como um serviço se precisar de maior persistência.