2011-12-02 86 views
5

我想知道如何在后台运行bash脚本,每当用户单击鼠标时都会执行某些操作(即运行脚本或命令或其他)。即使终端关闭,我也想继续运行。有任何想法吗?谢谢!在bash脚本中检测鼠标点击

+0

你能让你的窗口系统继续接受来自封闭窗口的输入吗?如果可以,我会很惊讶。有一个活动的鼠标假定有一些过程和事件循环来接受输入。如果关闭一个窗口,则必须依靠外层软件来继续处理,这意味着要运行脚本,外层软件必须知道脚本。也许您可以在窗口关闭之前将其注册为父进程的右键单击事件(极不可能)。而bash脚本通常不需要鼠标点击(IMO)。对不起,但祝你好运。 – shellter

+0

你说的是角色终端还是X? –

+0

我在这里看到两个不同的问题。对于第一个,请参阅http://stackoverflow.com/questions/5966903/how-to-get-mousemove-and-mouseclick-in-bash,第二个,请参阅Aamir的答案。 – ninjalj

回答

4

如果使用的是X11,你可以尝试xdotool捕捉鼠标事件

这将是这样的:

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

xdotool manual

如果你想在后台运行脚本,你可以使用:

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

保留t他脚本即使在终端关闭的情况下运行,您可以尝试nohup

2

,如果你只是想在鼠标点击(或轮事件)的xterm运行bash命令你可以试试这个例子:

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

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

这是轮事件(点击设置12代替)