Я согласен, что это не возможно с помощью именованных каналов. НКАТ порождает процесс для каждого входящего слушателя, а затем это _duplicating_, что идет из именованного канала в ДОУ на каждый процессов, используя другие формы МПК. Поскольку сокат гораздо более гибким, вот мне интересно, если это возможно, чтобы использовать доменный сокет UNIX (сокет дейтаграммы?). Это незнакомая территория для меня, и я не могу понять синтаксис. Я спрашиваю, потому что я начинаю переговоры о переходе в бельгийский вуз. Если я двигался в Англии я бы пошел к обсуждению говоря: "я хочу быть x ранг В Г зарплата" и идти оттуда. Что, кажется, не быть допустимым в Бельгии...

Что вы хотите, это уже происходит, на самом деле. И, конечно, команды mkdir не ваша проблема - он не читает стандартный ввод, так или иначе. Что труба передается по наследству в качестве стандартного ввода всех детей СШ - если, конечно, вы не получаете псевдо терминал, как СШ -Т.

Кроме этого, проблема состоит в том, что раковина выполнения этих команд является одним из СШс детьми - и частью его работы является открытие 0,1,2 для каждой команды в группе он работает. Ваш вклад, тогда просто теряется в толпе, потому что это на общий описатель - один и тот же дескриптор, что снаряд вновь открывается для каждого из своих детей.

И поэтому большинство просто, я думаю, вы можете просто переместить вход на дескриптор, который не является одним из этих трех дефолтов. Например, следующие работы для меня:

Эхо приветик файл >
файл Cat | СШ mikeserv@localhost в
 метод exec 3<&0
 команды mkdir -Р .
 Эхо Хо есть
 кот <&3'

Если я запускаю выше код выводит:

ho там
привет

Вы также можете найти некоторые утилиты в параметр СШ. человек СШ говорит:

  • хост :порт - запросов, стандартные ввод и вывод на клиенте направляется в Хост на порт по безопасному каналу. Означает , , ExitOnForwardFailure и ClearAllForwardings. Работает с протоколом версии 2 только