Я хочу вывести некоторые данные в канал, а другой процесс построчно что-то сделает с данными. Вот игрушечный пример:
mkfifo pipe
cat pipe&
cat >pipe
Теперь я могу вводить все, что хочу, и после нажатия клавиши ввода сразу же вижу ту же строку. Но если заменить вторую трубу на echo
:
mkfifo pipe
cat pipe&
echo "some data" >pipe
Канал закрывается после завершения echo
и cat pipe&
, поэтому я не могу больше передавать данные по каналу. Есть ли способ избежать закрытия канала и процесса, который получает данные, чтобы я мог передавать много строк данных через канал из сценария bash и обрабатывать их по мере поступления?