#!/usr/bin/env bash
while true; do
if xprintidle | grep -q 3000; then
xdotool mousemove_relative 1 1
fi
done
Derzeit kann ich prüfen, ob xprintidle
gleich 3000 ist und dann, wenn es so ist, ausführen xdotool
. Aber ich möchte prüfen, ob xprintidle
größer oder gleich 3000 ist und dann ausführen xdotool
. Wie kann ich das erreichen?
Antwort1
if [ $xprintidle -ge 3000 ]; then
[...stuff...]
Hier ist eine kurze Erklärung:
- gt- größer als
- ge- größer oder gleich
- $(...)wird zur Ausgabe des Befehls in den Klammern
Antwort2
Sie könnenbash
s Arithmetische Erweiterungdirekt zum Vergleichen ganzer Zahlen:
#!/usr/bin/env bash
while :; do
(( $(xprintidle) >= 3000 )) && xdotool mousemove_relative 1 1
sleep 0.5
done
Wenn Sie nur den einzelnen Befehl möchten, &&
ist dies ein einfacher Weg. Alternativ verwenden Sie if
:
#!/usr/bin/env bash
while :; do
if (( $(xprintidle) >= 3000 )); then
xdotool mousemove_relative 1 1
fi
sleep 0.5
done
Ich habe sleep
der Schleife einen Aufruf hinzugefügt, um bei jedem Durchlauf eine halbe Sekunde lang anzuhalten – passen Sie ihn nach Bedarf an.
Antwort3
Um anzugeben, ob die Zahl größer oder gleich einer anderen ist, können Sie verwenden -ge
. Ihr Code kann also wie folgt aussehen:
#!/usr/bin/env bash
while true; do
if [[ $(xprintidle) -ge 3000 ]]; then
xdotool mousemove_relative 1 1
fi
done