有没有办法以编程方式读取当前终端内容(可见窗口或完整缓冲区,无论它更容易)?
我需要这个,因为我正在尝试开发一个程序,后执行任意命令,使用其输出。我强调后- 我知道管道是用于此目的的,但该程序的目的是避免这种情况。
一个可能的解决方案是结合编程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
命令,<ctrl-a>:hardcopy output
并将返回值发送到您的screen
会话,生成一个名为 的文件output
,您可以在处理输出的其他程序中使用该文件。
编辑:第二个在显示硬拷贝的输出时避免等待超时Return
。screen