#!/usr/bin/env bash
while true; do
if xprintidle | grep -q 3000; then
xdotool mousemove_relative 1 1
fi
done
В настоящее время я могу проверить если xprintidle
равно 3 000 и затем если это, выполниться xdotool
. Но я хочу проверить если xprintidle
больше или равен, чем 3 000, и затем выполнитесь xdotool
. Как я могу достигнуть этого?
if [ $(xprintidle) -ge 3000 ]; then
[...stuff...]
Вот быстрое объяснение:
Можно использовать bash
Арифметическое Расширение непосредственно для сравнения целых чисел:
#!/usr/bin/env bash
while :; do
(( $(xprintidle) >= 3000 )) && xdotool mousemove_relative 1 1
sleep 0.5
done
Если Вы просто хотите единственную команду, &&
простой путь. С другой стороны, используйте if
:
#!/usr/bin/env bash
while :; do
if (( $(xprintidle) >= 3000 )); then
xdotool mousemove_relative 1 1
fi
sleep 0.5
done
Я добавил a sleep
звоните в цикл для приостановки в течение половины секунды, каждое выполнение – адаптирует его по мере необходимости.
Чтобы сказать, больше ли число или равно другому, можно использовать -ge
. Таким образом, Ваш код может быть похожим
#!/usr/bin/env bash
while true; do
if [[ $(xprintidle) -ge 3000 ]]; then
xdotool mousemove_relative 1 1
fi
done