2011-12-02 19 views
5

ユーザーがマウスをクリックするたびに、何かを行う(つまり、スクリプトやコマンドなどを実行する)バックグラウンドでbashスクリプトを実行する方法が不思議です。ターミナルが閉まっていてもこれを続けてください。何か案は?ありがとう!あなたはX11を使用している場合bashスクリプトでマウスクリックを検出する

+0

閉じたウィンドウからの入力を受け入れ続けるためにウィンドウシステムを取得できますか?あなたができるなら、私は非常に驚くだろう。アクティブなマウスを使用すると、入力を受け入れるための処理とイベントループがあることが前提です。ウィンドウを閉じると、処理を続行するためにソフトウェアの外側のレイヤーに依存する必要があります。つまり、スクリプトを実行するということです。ソフトウェアの外側のレイヤーはスクリプトについて知っている必要があります。おそらく、ウィンドウを閉じる前に、右クリックイベントとして親プロセスに登録することができます(ほとんど起こりそうもない)。また、bashスクリプトは通常マウスクリック(IMO)を受けません。申し訳ありませんが、幸運です。 – shellter

+0

キャラクターの端末やXについて話していますか? –

+0

ここでは2つの異なる質問があります。最初のものについては、http://stackoverflow.com/questions/5966903/how-to-get-mousemove-and-mouseclick-in-bashを参照してください.2番目は、Aamirの答えを参照してください。 – ninjalj

答えて

4

、あなたはマウスイベントをキャッチするxdotoolを試すことができます

それは次のようになり、何かのように:

xdotool search --onlyvisible . behave %@ mouse-click getmouselocation 

xdotool manual

あなたがバックグラウンドでスクリプトを実行したい場合使用することができます:

./myscript.sh &>/dev/null & 
0

彼はターミナルが閉じられても実行スクリプトはnohupを試すことがあります。

2

あなたはちょうどあなたがこの例を試すことができますマウスクリック(またはホイールイベント)上のxtermでbashコマンドを実行したい場合:

$ echo -e "\e[?1000h"

$ while read -n 6; do echo hellowworld; done

これは、ホイールイベントのためである(クリックのために代わりに12を設定してください)

関連する問題