Как избежать эхо-закрытия FIFO именованные каналы? - Забавное поведение FIFO в Unix

Я хочу вывести некоторые данные в канал, а другой процесс построчно что-то с ними сделал. Вот игрушечный пример:

mkfifo pipe
cat pipe&
cat >pipe

Теперь я могу ввести все, что хочу, и после нажатия клавиши ввода я сразу же вижу ту же строку. Но если заменить второй канал на echo :

mkfifo pipe
cat pipe&
echo "some data" >pipe

Канал закрывается после завершения echo и cat pipe & , так что я не могу больше передавать данные по каналу. Есть ли способ избежать закрытия канала и процесса, который получает данные, чтобы я мог передавать много строк данных через канал из сценария bash и обрабатывать их по мере поступления?

50
задан limovala 21 August 2013 в 00:21
поделиться