На одном ноутбуке с x-ubuntu 18.04 у меня есть скрипт оболочки (. sh), который автоматизирует серию кликов в веб-приложении (через xdotool). Все работает нормально, но мне нужно иметь возможность остановить скрипт нажатием кнопки sh (в то время как фокусировка на браузере происходит из-за щелчков). Сейчас я буферизовал, щелкая скрипт в окне терминала каждые k (чтение из терминала) итераций и давая 5 секунд сна, чтобы я мог нажать ctrl + c. Это решение, однако, не только изящно, но и заставляет меня всегда держать терминал и браузер в одном и том же положении и 5 секунд «теряться» каждые k итераций. Я прилагаю сводный скрипт, я действительно все испробовал, но не могу понять, какое-то время go я сделал такой же скрипт на C ++ (но, к сожалению, у меня был windows, и я не могу использовать c ++ на этом ноутбук) собираюсь читать буфер клавиатуры ... ps: я не могу использовать различные автокликеры, потому что скрипт, помимо нажатия, также выполняет другие действия (он запускает программы, обновляет базы данных и т. д. c.)
#!/bin/sh
p_p()
{ # brings the terminal window to the front
xdotool mousemove 300 0
sleep 0.5 # top-panel up
xdotool click 1
}
i=1
echo "every how many iterations do you want the possibility to interrupt?"
read k
until [ $i -gt 100000000000 ]
do
for X in $(seq 3)
do
xdotool mousemove 974 431
xdotool click 1
sleep 0.1
done
#here there is a function for other stuff
remainder=$(( i % k ))
if [ "$remainder" -eq 0 ]; then
p_p
echo "press ctrl + c for interrupt"
sleep 5
else
sleep 0.5
fi
i=$(( i+1 ))
echo "$i"
done
echo "security limit reached"