Eu não entendo como pipes nomeados não resolvem seu problema. Este exemplo usa duas interfaces de shell, shell_1 e shell_2 . Recuo I / O de / para shell_2 mais que shell_1 para tentar diferenciar o que I / O está ocorrendo de qual shell.
$ mkfifo my_pipe
(shell_1) $ echo hi > my_pipe # Blocks waiting for a reader
(shell_2) $ cat my_pipe # Unblocks shell_1
hi
(shell_2) $ cat my_pipe # blocks -- does not print "hi" again
(shell_1) $ echo bye > my_pipe # Unblocks shell_2
bye # Printed by shell_2