Execute o comando em um terminal e obtenha a saída em outro terminal possível? como? [fechadas]

1

Execute o comando em um terminal e obtenha a saída em outro terminal

    
por r.kabiraj 28.11.2015 / 13:26

2 respostas

3

Possível com algo conhecido como named pipe .

Aqui está uma demonstração básica:

  1. Abrir janela do terminal 1.
  2. Digite mkfifo /tmp/myPipe e pressione Enter
  3. Digite echo "Hello Named Pipe" > /tmp/myPipe & e pressione Enter
  4. Abra o terminal 2
  5. Executar cat /tmp/myPipe para ver a saída

Outra possível solução é ter uma sessão de screen em execução e anexar / desconectar a mesma.

    
por Sergiy Kolodyazhnyy 28.11.2015 / 14:53
2

No terminal de recebimento, execute o comando w . Isso imprimirá uma lista de sessões atualmente em execução, por exemplo, quando eu executo o comando, ele imprime:

 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

Aquele em que você está é, claro, aquele com o comando w (listado na coluna WHAT ).

Nesta lista, você também encontrará uma seção chamada TTY . Lá você verá o nome do arquivo de buffer do terminal, por exemplo pts/3 para o que eu executei w in.

Agora vamos supor que eu queira executar o comando em execução no pts1 para imprimir sua saída para pts3. Isso pode ser feito assim (usando o comando acima):

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

Isso encaminhará todas as saídas para pts3. No entanto, não será necessária nenhuma entrada de lá. Infelizmente, não consegui encontrar uma solução para isso. (Adições bem-vindas)

Dependendo do que você está tentando alcançar, um multiplexador de terminal, como o Tmux ou o GNU Screen, pode ser mais adequado para essa tarefa. por exemplo. com o Tmux, proceda da seguinte forma:

Inicie o Tmux com o comando tmux . Você será descartado para um novo shell. Execute seu comando lá.

No terminal de recebimento, execute tmux a para anexar à sessão Tmux existente. Agora você pode interagir com este terminal.

Se desejar, você pode se desanexar do Tmux a qualquer momento com Ctrl + B , seguido por D . Você pode reconectar de qualquer lugar com tmux a .

    
por s3lph 28.11.2015 / 14:03