Eu tenho:
sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done
funcionando como um timer simples e sem frescuras para me lembrar quando algo deve ser feito. Esse sleep 210m
é o PID 25347.
Estou tentando descobrir quanto tempo resta no sono. O melhor que eu inventei, colocando a quantidade de sono original (210 minutos) é:
$ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc
78:11
(Explicação: O primeiro bit calcula o número de segundos no sono original; o $(ps…)
bit obtém o tempo desde o início do sono em segundos e o restante os subtrai e é exibido em minutos e segundos.)
Ocorre-me que isso seria útil em geral; Existe uma maneira melhor de fazer isso? Ou pelo menos uma maneira inteligente de analisar o tempo de sono ps -o args
?
exec
). Mas esse é um bom ponto para qualquer solução geral.
mksh
e ksh93
pelo menos) foram sleep
incorporados (para que não apareçam ps
)., Você precisa saber com antecedência com quais sleep
implementações está lidando.
sh -c 'sleep 1; sleep 2'
com muitassh
implementações, é o mesmo processo que executash
e depoissleep 2
(1 segundo depois).