Ich habe:
sleep 210m && for i in $(seq 1 5); do echo -e '\a'; sleep 0.5; done
Laufen als einfacher, schnörkelloser Timer, um mich daran zu erinnern, wann etwas getan werden sollte. Das sleep 210m
ist PID 25347.
Ich versuche herauszufinden, wie viel Zeit noch im Schlaf ist. Das Beste, was ich mir ausgedacht habe, wenn ich die ursprüngliche Schlafmenge (210 Minuten) eingegeben habe, ist:
$ echo "210 60 * $(ps -o etimes= 25347) - 60 ~ r n [:] P p" | dc
78:11
(Erläuterung: Das erste Bit berechnet die Anzahl der Sekunden im ursprünglichen Ruhezustand. Das $(ps…)
Bit erhält die Zeit seit Beginn des Ruhezustands in Sekunden, der Rest subtrahiert sie und wird in Minuten und Sekunden angezeigt.)
Mir fällt ein, dass dies im Allgemeinen nützlich wäre; Gibt es einen besseren Weg, dies zu tun? Oder zumindest eine clevere Methode, um die Schlafzeit zu analysieren ps -o args
?
exec
). Aber das ist ein guter Punkt für jede allgemeine Lösung.
mksh
und ksh93
zumindest) integriert sind sleep
(also nicht angezeigt werden ps
). Sie müssen im Voraus wissen, mit welchen sleep
Implementierungen Sie es zu tun haben.
sh -c 'sleep 1; sleep 2'
vielensh
Implementierungen wird beispielsweise derselbe Prozess ausgeführtsh
und später ausgeführtsleep 2
(1 Sekunde später).