現在のターミナル コンテンツ (表示されているウィンドウ、または完全なバッファーなど、より簡単な方法) をプログラムで読み取る方法はありますか?
私はプログラムを開発しようとしているので、これが必要です。後任意のコマンドを実行すると、その出力が処理されます。後- これにはパイプが使用されることは知っていますが、プログラムの目的はそれを避けることです。
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