#!/bin/bash trap 'rm -f fifo' EXIT mkfifo fifo || exit # A writer opens, writes and closes after the reader has observed EOF but # before the reader closes its end. : > fifo & exec 3< fifo read <&3 || echo EOF echo two > fifo && echo "wrote two" exec 3<&- # data loss echo three > fifo & cat fifo