Yo tengo:
sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done
funcionando como un temporizador simple y sin lujos para recordarme cuándo se debe hacer algo. Eso sleep 210m
es PID 25347.
Estoy tratando de averiguar cuánto tiempo queda en el sueño. Lo mejor que se me ocurrió, y puse la cantidad de sueño original (210 minutos) es:
$ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc
78:11
(Explicación: el primer bit calcula el número de segundos en la suspensión original; el $(ps…)
bit obtiene el tiempo desde que la suspensión comenzó en segundos, luego el resto los resta y se muestra en minutos y segundos).
Se me ocurre que esto sería útil en general; ¿Hay una mejor manera de hacer esto? ¿O al menos una forma inteligente de analizar el tiempo de sueño ps -o args
?
exec
). Pero ese es un buen punto para cualquier solución general.
mksh
y ksh93
al menos) tienen sleep
incorporados (por lo que no aparecerían en ps
), necesitaría saber de antemano con qué sleep
implementaciones está tratando.
sh -c 'sleep 1; sleep 2'
muchassh
implementaciones, es el mismo proceso que se ejecutash
y luego se ejecutasleep 2
(1 segundo después).