Выполнить команду в одном терминале и получить вывод в другом терминале, это возможно? как?

Выполните команду в одном терминале и получите вывод в другом терминале

2 ответа

Возможно с чем-то известным как named pipe,

Вот основная демонстрация:

  1. Откройте окно терминала 1.
  2. Тип mkfifo /tmp/myPipe и нажмите ввод
  3. Тип echo "Hello Named Pipe" > /tmp/myPipe & и нажмите ввод
  4. Открытый терминал 2
  5. Бежать cat /tmp/myPipe чтобы увидеть результат

Другое возможное решение - иметь screen сеанс работает, и присоедините / отсоедините его.

На принимающем терминале выполните команду w, Это напечатает список текущих запущенных сессий, например, когда я запускаю команду, она печатает:

 13:39:22 up 11 min,  3 users,  load average: 0.32, 0.50, 0.33
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
sebastia tty8     :0               13:27   11:52  21.10s  0.31s cinnamon-session --session cinnamon
sebastia pts/1    :0               13:36   10.00s 23.90s  0.29s sudo apt-get update
sebastia pts/3    :0               13:37    1.00s  0.11s  0.01s w

Тот, в котором вы находитесь, конечно, тот, с командой w (Перечислено в колонке WHAT).

В этом списке вы также найдете раздел TTY, Там вы увидите имя файла буфера терминала, например pts/3 за тот, кого я казнил w в.

Теперь давайте предположим, что я хочу выполнить команду, запущенную в pts1, чтобы напечатать ее вывод в pts3. Это можно сделать так (используя команду сверху):

sudo apt-get update > /dev/pts/3

Это перенаправит весь вывод на pts3. Тем не менее, он не будет принимать никакой информации оттуда. К сожалению, мне не удалось найти решение для этого. (Дополнения приветствуются)


В зависимости от того, чего вы пытаетесь достичь, терминальный мультиплексор, такой как Tmux или GNU Screen, может лучше подходить для этой задачи. например, с Tmux, действуйте следующим образом:

Запустите Tmux с помощью команды tmux, Вы попадете в новую оболочку. Выполните свою команду там.

В приемном терминале запустите tmux a присоединить к существующему сеансу Tmux. Теперь вы можете взаимодействовать с этим терминалом.

Если вы хотите сделать это, вы можете в любое время отсоединиться от Tmux с помощью Ctrl+B, а затем D. Вы можете прикрепить его из любого места tmux a,

Другие вопросы по тегам