Я написал собственное небольшое приложение для реализации того, что мне нужно. Читает аргументы и записывает их в сокет. Жаль, что его еще не было, но в таких инструментах, как nc
и socat
, доступны только более сложные функции. Возможно, я мог бы найти время, чтобы написать патч для nc
, чтобы также принимать входные данные от аргумента.
Комментарии к комментариям -Мне немного грустно читать, что включение полной оболочки и создание из нее подпроцессов является новой нормой. Чистые накладные расходы нам не нужны.
Если у вас есть две оболочки, shell-1
иshell-2
:
(shell-1) $ who am i
user pts/0 ...
(shell-2) $ who am i
user pts/1 ...
Затем запись в связанное символьное устройство приведет к тому, что этот вывод будет напечатан на связанном терминале (, как вы видели):
(shell-2) $ echo hello > /dev/pts/0
$
(shell-1) $ hello
Запись в это устройство из shell-2
ничем не отличается от записи в него из shell-1
. Если вы выполняете echo hello
на shell-1
, это также записывает в /dev/pts/0
и не становится вводом в эту оболочку, оно записывается на «экран» терминала.
Если вы хотите, чтобы процесс записывал стандартный поток ввода оболочки, вам нужно использовать другой механизм (, например, канал или fifo ), и он должен быть установлен процессом, который выполнил оболочку.