Выполнить команду на одном терминале и получить вывод на другом терминале. Возможно ли? как? [closed]

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

1
задан 28 November 2015 в 15:26

2 ответа

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

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

  1. Открытое окно терминала 1.
  2. Ввести mkfifo /tmp/myPipe и хит входит
  3. Ввести echo "Hello Named Pipe" > /tmp/myPipe & и хит входит
  4. Открытый терминал 2
  5. Выполненный cat /tmp/myPipe видеть вывод

enter image description here

Другое возможное решение состоит в том, чтобы иметь a screen выполнение сессии и присоединение/отсоединение к нему.

3
ответ дан 3 December 2019 в 06:40

На приемном терминале выполните команду 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 может лучше подойти для этой задачи. например, с Tmux, продолжите двигаться следующим образом:

Запустите Tmux с команды tmux. Вы будете отброшены к новой оболочке. Выполните свою команду там.

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

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

2
ответ дан 3 December 2019 в 06:40

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

Похожие вопросы: