#!/usr/bin/env bash
while true; do
if xprintidle | grep -q 3000; then
xdotool mousemove_relative 1 1
fi
done
Actuellement, je peux vérifier si xprintidle
est égal à 3000 et si c'est le cas, exécutez xdotool
. Mais je veux vérifier si xprintidle
est supérieur ou égal à 3000, puis exécuter xdotool
. Comment puis-je atteindre cet objectif?
if [ $(xprintidle) -ge 3000 ]; then
[...stuff...]
Voici une explication rapide:
Vous pouvez utiliser bash
name __ ’s Arithmetic Expansion directement pour comparer des nombres entiers:
#!/usr/bin/env bash
while :; do
(( $(xprintidle) >= 3000 )) && xdotool mousemove_relative 1 1
sleep 0.5
done
Si vous voulez juste la commande unique, &&
est un moyen simple. Sinon, utilisez if
name__:
#!/usr/bin/env bash
while :; do
if (( $(xprintidle) >= 3000 )); then
xdotool mousemove_relative 1 1
fi
sleep 0.5
done
J'ai ajouté un appel sleep
à la boucle pour qu'il s'interrompe pendant une demi-seconde à chaque exécution - adaptez-le si nécessaire.
Pour dire si le nombre est supérieur ou égal à l'autre, vous pouvez utiliser -ge
. Donc, votre code peut ressembler à
#!/usr/bin/env bash
while true; do
if [[ $(xprintidle) -ge 3000 ]]; then
xdotool mousemove_relative 1 1
fi
done