Il s'agit de ma tentative de créer un script qui utilisera un "déplacement de la souris" pour empêcher la suppression de l'écran lors du visionnage de vidéos. J'espère utiliser la valeur du processus% CPU le plus élevé top
et si l'utilisation du processeur dépasse 5%, un déplacement de la souris devrait se produire.
#!/usr/bin/env bash
sleep_period=60s
while true; do
if (( $(top -bn 1 | sed -nrs '8p' | awk '{ print $9 }') -gt 5 )); then
while (( $(top -bn 1 | sed -nrs '8p' | awk '{ print $9 }') -gt 5 )); do
xdotool mousemove 0 100
xdotool mousemove 0 50
sleep ${sleep_period}
done
else
sleep ${sleep_period}
fi
done
Malheureusement ça ne marche pas. Les erreurs sont comme ceci:
[07:20 PM] /bin $ noo.sh
/home/vasa1/bin/noo.sh: line 6: ((: 0.0 -gt 5 : syntax error: invalid arithmetic operator (error token is ".0 -gt 5 ")
/home/vasa1/bin/noo.sh: line 6: ((: 6.4 -gt 5 : syntax error: invalid arithmetic operator (error token is ".4 -gt 5 ")
Comment puis-je réparer ça? (Veuillez noter que je n'ai pas d'expérience en scripting.)
Sur la base des réponses ici, j'ai rassemblé:
#!/usr/bin/env bash
sleep_period=5m
while true; do
if [[ $(top -bn 1 | sed -nrs '8p' | awk '{ print int($9) }') -gt 8 ]]; then
while [[ $(top -bn 1 | sed -nrs '8p' | awk '{ print int($9) }') -gt 8 ]]; do
xset -dpms; xset s off
xset +dpms; xset s on
sleep ${sleep_period}
done
else
sleep ${sleep_period}
fi
done
Ensuite, j'ai signalé ce code sur les forums Ubuntu et Vaphell a continué à travailler dessus. Ci-dessous, la version de Vaphell et ce que j'utilise:
#!/usr/bin/env bash
sleep_period=5m
while true; do
if top -bn 1 | awk 'NR==8 { exit !($9>8); }'; then
xset -dpms; xset s off
xset +dpms; xset s on
fi
sleep ${sleep_period}
done
xset
comme suggéré par Raphael ci-dessous.
-gt
attend des opérandes entiers, pas des virgules flottantes. et je ne sais pas pourquoi vous utilisez((
...))
plutôt que[
...]
. ou pourquoi vous utilisez CPU% comme déclencheur ... ou même pourquoi vous extrayez l'utilisation du CPU% à partir d'un programme curses comme top plutôt que quelque chose commeps -heo %C --sort -%cpu | head -1