GNU/Linux >> Linux の 問題 >  >> Linux

シェルスクリプトを介して端末アプリケーションのスクリーンショットをキャプチャしますか?

screen でこれができるとは思えません 出力が実際にウィンドウにレンダリングされない限り、これはおそらく screen を使用するポイントを無効にします.しかし、ウィンドウはフォアグラウンドにある必要はありません.

ImageMagick スイートには import というユーティリティが含まれています これに使用できます。 import --help の場合 「コマンドが見つかりません」というメッセージが表示されたら、imagemagick パッケージをインストールします。このパッケージは、任意の Linux ディストリビューションで利用できます。

import ウィンドウの名前が必要です。 iftop はターミナル インターフェイスであるため、正しい名前を使用していることを確認するには、実行する GUI ターミナルのタイトルを設定する必要があります。その方法は、使用する GUI ターミナルによって異なります。たとえば、私は次のような XFCE ターミナルを好みます:

Terminal -T Iftop -e iftop

iftop を実行している新しいターミナルを開きます タイトルは「イフトップ」。そのスクリーンショットを撮ることができます:

import -window Iftop ss.jpg

これを 5 秒ごとに実行する場合は、代わりにスクリプトを実行しているウィンドウを開いて、同じターミナルを再利用できるようにすることをお勧めします。

count=0;
while ((1)); do
    iftop &
    pid=$!
    sleep 1  # make sure iftop is up
    count=$(($count+1))
    import -window Iftop iftop_sshot$count.jpg
    kill $pid
    sleep 5
done

スクリプトが「iftopSShot.sh」の場合、この Terminal -T Iftop -e iftopSShot.sh を開始します。 -- ただし、おそらく Terminal を使用していない可能性があります . Linux GUI 端末のほとんどは、個別に使用できるスタンドアロン アプリケーションですが、特定の DE に関連付けられています。 KDE のデフォルト端末の名前は Konsole だと思います そしてそれは -T に従います および -e 慣習; GNOME の場合、おそらく gnome-terminal です。 (これは変更されている可能性があります) -t を使用しているようです -T ではありません .

import に注意してください デフォルトではベルが鳴るのでイライラしますが、 -silent があります オプション。


X で 環境:

端末のタイトルを動的に設定:

スクリプトから、ansi シーケンスを使用して端末のタイトルを変更する方法:

echo -e "\033]0;Term | myApp\007";

ウィンドウ タイトルで png をキャプチャ:

wmctrl を使用して、正確なタイトルでウィンドウ ID を検索できるようになりました。 ID を import に渡します ユーティリティ:

import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') ~/Pictures/capture.png

GIF を作成する:

微調整の例、毎秒 5 つのキャプチャを取得し、convert を使用してそれらを gif に変換する 、無限の 2 秒ループで。

rm -f /tmp/*png && for i in {1..5}; do import -window $(wmctrl -l | grep -i 'Term | myApp' | awk '{print $1}') /tmp/$i.png && sleep 1; done && convert -delay 200 -loop 0 /tmp/*.png animation.gif

Linux
  1. 実行時にスクリプトでシェルを決定しますか?

  2. シェルコンソールのクリア?

  3. Linux で Python スクリプトを使用してスクリーンショットを撮る

  1. シェルスクリプトの並列実行

  2. crontab 経由で Python スクリプトを実行する

  3. bash スクリプトのコマンドとターミナルのコマンドの違い

  1. シェルスクリプトでタイムアウトしますか?

  2. Gnomeターミナルは非ログインシェルの一種ですか?

  3. ソースシェルスクリプトへのパスを決定しますか?