Я пытаюсь использовать именованные каналы в качестве удобного способа предварительной обработки ввода на лету для конвейеров, которые, к сожалению, не принимают данные из stdin напрямую.
везде, где я ищу информацию, я получаю в основном один и тот же смысл: именованные каналы должны быть очень просты в использовании.
Суть в основном в том, что должно работать следующее:
mkfifo mynamedpipe
echo "is this working?" > mynamedpipe
cat mynamedpipe
когда я запускаю mkfifo mynamedpipe
, канал успешно создается и отображается с помощью ls *
.
Но даже после того, как я даю себе разрешение на запись в этот канал, когда я пытаюсь запустить echo "whatever" > mynamedpipe
ничего не происходит, и терминал просто зависает, пока я не завершу процесс с помощью ctrl+c
У меня есть эта проблема на моей локальной машине с Linux (Ubuntu 14.04.5 LTS), а также на общедоступном сервере (Red Hat Enterprise Linux 7) и в zsh, а также в bash.
Что я здесь не так делаю?