Antworten:
Aus der Manpage :
Halten Sie bei zwei oder mehr Argumenten für die Zeit an, die durch die Summe ihrer Werte angegeben wird .
So:
sleep 7m 30s
bashintegriertes und GNU- sleep Verhalten ist. POSIXly, sleepist nur erforderlich, um Ganzzahlen als Sekunden zu verstehen
Es gibt bereits zwei ausgezeichnete Antworten, aber ich würde gerne etwas erweitern. Kopieren Sie den folgenden Befehl und fügen Sie ihn in Ihr Terminal ein:
$ sleep 3d 5h 7m 30.05s &
[1] 7321
Dies startet einen zweiten Prozess, der 3 Tage, 5 Stunden, 7 Minuten und 30,05 Sekunden lang ruht. Die Prozess-ID (PID) ist 7321in meinem Fall.
Bestätigen Sie die PID mit
$ ps aux | grep sleep
rick 7321 0.0 0.0 14356 660 pts/2 S 22:40 0:00 sleep 3d 5h 7m 30.05s
root 12415 0.0 0.0 14356 700 ? S 22:41 0:00 sleep 60
rick 12500 0.0 0.0 21292 968 pts/2 R+ 22:41 0:00 grep --color=auto sleep
Der erste Eintrag ist der, an dem wir interessiert sind. Der zweite Eintrag ist für ein permanentes Programm, das ich beim Start ausgeführt habe. Der dritte Eintrag bezieht sich auf den Befehl grep.
Um nun zu sehen, wie viel Zeit (in Sekunden) für den sleepvon PID generierten Befehl verbleibt, 7321können wir Folgendes verwenden: Wie kann man die verbleibende Zeit in einem "Schlaf" bestimmen? Befehl:
$ remaining_sleep_time 7321
277304.05
$ remaining_sleep_time 7321
277296.05
$ remaining_sleep_time 7321
277262.05
Der Code für den Befehl, den Sie in Ihre ~/.bashrcDatei aufnehmen können:
remaining_sleep_time() { # arg: pid
ps -o etime= -o args= -p "$1" | perl -MPOSIX -lane '
%map = qw(d 86400 h 3600 m 60 s 1);
$F[0] =~ /(\d+-)?(\d+:)?(\d+):(\d+)/;
$t = -($4+60*($3+60*($2+24*$1)));
for (@F[2..$#F]) {
s/\?//g;
($n, $p) = strtod($_);
$n *= $map{substr($_, -$p)} if $p;
$t += $n
}
print $t'
}
remaining_sleep_timemuss ~/.bashrcgemäß dem Link in Ihre Datei kopiert werden . Sie können den Code auch in eine Bash-Skriptdatei einfügen.
Der Befehl sleep zählt immer in Sekunden. Sie können ((7x60) +30) Sekunden verwenden und dann einfach Folgendes eingeben:
Schlaf 450
sleep $((60*7))für Minuten verwendet werden könnte