現在のターミナルの内容をプログラムで読み取るにはどうすればいいですか?

現在のターミナルの内容をプログラムで読み取るにはどうすればいいですか?

現在のターミナル コンテンツ (表示されているウィンドウ、または完全なバッファーなど、より簡単な方法) をプログラムで読み取る方法はありますか?

私はプログラムを開発しようとしているので、これが必要です。任意のコマンドを実行すると、その出力が処理されます。- これにはパイプが使用されることは知っていますが、プログラムの目的はそれを避けることです。

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

次に、startscreenと dooutputworker.sh commandコマンドが実行され、<ctrl-a>:hardcopy output戻り値がscreenセッションに送信され、 というファイルが生成されますoutput。このファイルは、出力を操作する他のプログラムで使用できます。

編集: 2 番目は、ハードコピーからの出力を表示している間、タイムアウトを待機しないようにReturnします。screen

関連情報