Чтобы ответить на ваш уточненный вопрос, простой способ - использовать FIFO (именованный канал) для работы. На отправляющем терминале:
mkfifo ./myfifo
read var
echo "var" > myfifo
На приемном терминале:
read line < ./myfifo
Чтобы просто напечатать другой xterm из вашего собственного, при получении xterm:
$ tty
/dev/pts/2
При отправке xterm:
$ echo howdy doody > /dev/pts/2
Или из скрипта в отправляющем xterm, перенаправляя stdin как вы просили:
$ cat > /dev/pts/2
Вы должны изменить разрешения для записи в / dev / pts / 2, если вы делаете это для пользователей.
Вы не можете захватить то, что напечатано таким образом, на приемном терминале. Нет встроенного метода перенаправления для захвата ввода с другого терминала.
Если вы хотите, чтобы отправляющий xterm автоматически обнаружил символьное устройство принимающего, на него можно ответить несколькими способами в зависимости от того, какой тип межпроцессного взаимодействия вы хотите использовать. Простым хаком было бы для получателя сделать tty> file1, а отправителю сделать эхо-запрос что угодно> $ (cat file1).
Если вы хотите попробовать и направить это от получателя, а не от отправителя, снова возникает проблема межпроцессного взаимодействия, которая может быть решена несколькими способами.