Как программно прочитать текущее содержимое терминала?

Как программно прочитать текущее содержимое терминала?

Есть ли способ программно прочитать текущее содержимое терминала (видимое окно или полный буфер, что проще)?

Мне это нужно, потому что я пытаюсь разработать программу, которая,послевыполнение произвольной команды, работает с ее выводом. Я подчеркиваюпосле- Я знаю, что для этого используются трубы, но цель программы - избежать этого.

Возможным решением было бы сочетание программного действия Select allс последующим xselвызовом, хотя я не знаю способа выполнить первую операцию [в терминале 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

Затем запустите screenи выполните outputworker.sh commandкоманду do, <ctrl-a>:hardcopy outputи ответ будет отправлен в ваш screenсеанс, создав файл с именем output, который вы можете использовать в другой программе, работающей с выходными данными.

Редактировать: Второй вариант Returnпозволяет screenизбежать ожидания тайм-аута при отображении вывода с печатной копии.

Связанный контент