Existe uma maneira de ler o conteúdo atual do terminal (janela visível ou buffer completo, o que for mais fácil) programaticamente?
Preciso disso porque estou tentando desenvolver um programa que,depoisexecutando um comando arbitrário, trabalha com sua saída. eu me estressodepois- Eu sei que são usados pipes para isso, mas o objetivo do programa é evitar isso.
Uma possível solução seria uma combinação de uma programática Select all
seguida de uma xsel
invocação, embora eu não conheça nenhuma maneira de realizar a primeira operação [no Terminal Gnome].
Responder1
Você pode fazer isso com um script usando screen
e xdotool
.
Este pode ser o seu outputworker.sh
:
#!/bin/sh
$1
xdotool key --clearmodifiers ctrl+a colon h a r d c o p y space o u t p u t Return Return
your_command output
Em seguida, start screen
e do outputworker.sh command
o comando é executado, <ctrl-a>:hardcopy output
e um retorno é enviado para sua screen
sessão, produzindo um arquivo chamado output
, que você pode usar em seu outro programa que funcione com a saída.
Editar: o segundo Return
evita screen
esperar o tempo limite enquanto exibe a saída da cópia impressa.