Поведение такое же, как в интерактивном терминале.Просто попробуйте:
you@yourpc ~ sleep 3<enter>
ls<enter>
wait...
you@yourpc ~ ls<inserted by bash>
file1 file2 file3 ...
Поведение канала в Linux описано в разделе man 7 pipe
Ввод / вывод для каналов и FIFO
...
Если процесс пытается прочитать из пустого канала, чтение (2) блокируется, пока данные не станут доступны.Если процесс пытается выполнить запись в полный канал (см. Ниже), записывайте (2) блоки до тех пор, пока из канала не будет считано достаточное количество данных для завершения записи.
...
Емкость трубы
Емкость трубы ограничена.Если канал заполнен, запись (2) заблокируется или завершится неудачно, в зависимости от того, установлен ли флаг O_NON-BLOCK (см. Ниже).Разные реализации имеют разные пределы для пропускной способности трубы.Приложения не должны полагаться на определенную емкость: приложение должно быть спроектировано так, чтобы процесс чтения потреблял данные, как только он стал доступен, чтобы процесс записи не оставался заблокированным.
Это означает, чтоконец записи fifo не содержит информации о том, когда читатель прочитал или обработал ввод.