Есть ли способ программно прочитать текущее содержимое терминала (видимое окно или полный буфер, что проще)?
Мне это нужно, потому что я пытаюсь разработать программу, которая,послевыполнение произвольной команды, работает с ее выводом. Я подчеркиваюпосле- Я знаю, что для этого используются трубы, но цель программы - избежать этого.
Возможным решением было бы сочетание программного действия 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
избежать ожидания тайм-аута при отображении вывода с печатной копии.