2015-04-19 2 views
1

Я пытаюсь интегрировать простой скрипт с бесконечным щелчком, используя XDOToool с другим фрагментом скрипта для обнаружения ввода с клавиатуры; для завершения запуска скрипта при нажатии клавиши, но не уверены, как их сопоставить.BASH XDOTool Щелчок мышью, повторение и остановка

Этот сценарий выполняется бесконечно повторно нажав на экран курсора точки XXX, YYY определяется XDOTool

#!/bin/bash 
while true [ 1 ]; do 
xdotool mousemove XXX YYY click 1 & 
sleep 1.5 
done 

Далее я хотел бы использовать что-то вроде:

#!/bin/bash 
if [ -t 0 ]; then stty -echo -icanon -icrnl time 0 min 0; fi 
count=0 
keypress='' 
while [ "x$keypress" = "x" ]; do 
let count+=1 
echo -ne $count'\r' 
keypress="`cat -v`" 
done 
if [ -t 0 ]; then stty sane; fi 
echo "You pressed '$keypress' after $count loop iterations" 
echo "Thanks for using this script." 
exit 0 

Я не понимаю, как я беру :

xdotool mousemove XXX YYY click 1 & 
sleep 1.5 

И где положить его в сценарий выше, путаницу BASH и MAN BASH не помогает, поэтому любой, кто мог бы помочь, был бы оценен. БЛАГОДАРЯ

+0

ли мой ответ работу? – Helio

ответ

4

Улучшение (и прокомментированы) Сценарий:

#!/bin/bash 

x_pos="0" # Position of the mouse pointer in X. 
y_pos="0" # Position of the mouse pointer in Y. 
delay="1.5" # Delay between clicks. 

# Exit if not runs from a terminal. 
test -t 0 || exit 1 

# When killed, run stty sane. 
trap 'stty sane; exit' SIGINT SIGKILL SIGTERM 

# When exits, kill this script and it's child processes (the loop). 
trap 'kill 0' EXIT 

# Do not show ^Key when press Ctrl+Key. 
stty -echo -icanon -icrnl time 0 min 0 

# While the pears become pears... 
while true; do 
    xdotool mousemove "$x_pos" "$y_pos" click 1 & 
    sleep "$delay" 
done & # Note the &: We are running the loop in the background to let read to act. 

# Pause until reads a character. 
read -n 1 

# Exit. 
exit 0