Este es mi intento de crear una secuencia de comandos que use un "movimiento del mouse" para evitar que la pantalla quede en blanco mientras veo videos. Espero usar el valor para el proceso de% de CPU más alto top
y si el uso de la CPU excede el 5%, debería ocurrir un movimiento del mouse.
#!/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
Lamentablemente, no funciona. Los errores son así:
[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 ")
¿Cómo puedo solucionar esto? (Tenga en cuenta que no tengo experiencia en secuencias de comandos).
Basado en las respuestas aquí, puse juntas:
#!/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
Luego, informé sobre este código en los foros de Ubuntu y Vaphell trabajó más en él. A continuación se muestra la versión de Vaphell y es lo que estoy usando:
#!/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
como lo sugiere Raphael a continuación.
-gt
espera operandos enteros, no coma flotante. Y no estoy seguro de por qué estás usando((
...))
en lugar de sólo[
...]
. o por qué está utilizando CPU% como desencadenante ... o incluso por qué está extrayendo la utilización de CPU% de un programa de maldiciones como top en lugar de algo comops -heo %C --sort -%cpu | head -1