Como ler o conteúdo atual do terminal programaticamente? [duplicado]

1

Existe uma maneira de ler o conteúdo atual do terminal (janela visível ou buffer completo, seja o que for mais fácil) programaticamente?

Eu preciso disso porque estou tentando desenvolver um programa que, após executando um comando arbitrário, funciona com sua saída. Eu enfatizo depois - Eu sei que canos são usados para isso, mas o propósito do programa é evitar isso.

Uma possível solução seria uma combinação de uma% programática Select all seguida de uma invocação xsel , embora eu não saiba como realizar a primeira operação [no Terminal do Gnome].

    
por Marcus 31.05.2017 / 10:26

1 resposta

0

Você pode fazer isso com um script usando screen e xdotool .

Este pode ser 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, inicie screen e execute outputworker.sh command o comando será executado, <ctrl-a>:hardcopy output e um retorno será enviado para sua sessão screen , produzindo um arquivo chamado output , que você pode usar em outro programa trabalha com a saída.

Editar : O segundo Return mantém screen de esperar por um tempo limite enquanto exibe a saída da cópia impressa.

    
por 31.05.2017 / 13:07