프로그래밍 방식으로 현재 터미널 콘텐츠를 읽는 방법은 무엇입니까?

프로그래밍 방식으로 현재 터미널 콘텐츠를 읽는 방법은 무엇입니까?

현재 터미널 콘텐츠(보이는 창 또는 전체 버퍼 등 더 쉬운 것)를 프로그래밍 방식으로 읽을 수 있는 방법이 있습니까?

프로그램을 개발하려고 하기 때문에 이것이 필요합니다.~ 후에임의의 명령을 실행하면 해당 출력과 함께 작동합니다. 나는 스트레스를 받는다~ 후에- 나는 이것을 위해 파이프가 사용된다는 것을 알고 있지만 프로그램의 목적은 그것을 피하는 것입니다.

가능한 해결책은 프로그래밍 방식 Select allxsel호출을 조합하는 것입니다. 하지만 [Gnome 터미널에서] 첫 번째 작업을 수행하는 방법은 모르겠습니다.

답변1

screen및 을 사용하여 스크립트로 수행할 수 있습니다 xdotool.

이것은 당신의 것일 수 있습니다 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

그런 다음 start screen및 do outputworker.sh command명령이 실행되고 세션 <ctrl-a>:hardcopy output으로 반환이 전송되어 출력과 함께 작동하는 다른 프로그램에서 사용할 수 있는 라는 screen파일이 생성됩니다 .output

편집하다: 두 번째는 하드카피의 출력을 표시하는 동안 시간 초과를 기다리지 않습니다 Return.screen

관련 정보