Я в такой же ситуации, как и в этом Почта Но я не могу получить предоставленное там решение для работы в моей ситуации, поскольку ответ, похоже, относится только к этому вопросу.
В частности, я не мог понять, в чем была цель
cat my.fifo | nc remotehost.tld 10000
В моем случае у меня запущен процесс и ожидает ввода. как я могу отправить ввод в этот процесс, используя именованные каналы?
я пробовал echo 'h' > /proc/PID/fd/0
он просто отображает "h" в окне процесса.
Просто игнорируйте строки, содержащие nc
, OP в этом вопросе хочет использовать его для передачи данных по сети через nc
.
Это оставляет вам:
mkfifo yourfifo
cat > yourfifo &
mypid=$!
yourprogram < yourfifo
Теперь вы можете отправлять данные в свою программу с помощью
echo "Hello World" > yourfifo
Если вы закончили, завершите свою программу, введите команду kill $mypid
чтобы избавиться от фиктивного процесса, чтобы сохранить FIFO открытым и rm yourfifo
чтобы избавиться от именованного канала.