Der Linux-Schlafbefehl ist einer der einfachsten Befehle, die es gibt. Wie Sie aus dem Namen erraten können, ist seine einzige Funktion das Schlafen. Mit anderen Worten, es führt eine Verzögerung für eine bestimmte Zeit ein.
Wenn Sie also den Schlafbefehl mit x verwenden, kann der nächste Befehl erst nach x Sekunden ausgeführt werden.
Der Sleep-Befehl hat eine einfache Syntax:
sleep Number[Suffix]
Hier könnte das Suffix sein:
- Sekunden lang. Dies ist die Voreinstellung.
- m für Minuten.
- Stunden für Stunden.
- Tage lang.
Sehen wir uns einige Beispiele für den Schlafbefehl an.
Beispiele für Bash-sleep-Befehle
Obwohl Sie es direkt in einer Shell verwenden können, wird der Befehl sleep häufig verwendet, um eine Verzögerung bei der Ausführung eines Bash-Skripts einzuführen. Ich werde die Verwendung des Schlafbefehls anhand von Beispiel-Bash-Skripten zeigen.
Sleep-Befehl ohne Suffix zählt in Sekunden
Angenommen, Sie möchten Ihr Bash-Skript für 5 Sekunden pausieren, können Sie sleep wie folgt verwenden:
sleep 5
In einem Beispiel-Bash-Skript könnte es so aussehen:
!/bin/bash
echo "Sleeping for 5 seconds…"
sleep 5
echo "Completed"
Wenn Sie es mit dem Befehl time ausführen, werden Sie sehen, dass das Bash-Skript tatsächlich (etwas) länger als 5 Sekunden lief.
time ./sleep.sh
Sleeping for 5 seconds…
Completed
real 0m5.008s
user 0m0.000s
sys 0m0.007s
Sleep-Befehl mit Minuten- oder Stunden- oder Tagessuffix
Sie können die Ruhezeit folgendermaßen in Minuten angeben:
sleep 1m
Dadurch wird das Skript/die Shell für eine Minute angehalten. Wenn Sie das Skript um Stunden verzögern möchten, können Sie dies mit der Option h tun:
sleep 2h
Auch wenn Sie das Bash-Skript tagelang pausieren möchten, können Sie dies mit dem Suffix d tun:
sleep 5d
Dies könnte hilfreich sein, wenn Sie an abwechselnden Tagen oder Wochentagen laufen möchten.
Schlafbefehl mit einer Kombination aus Sekunde, Minute, Stunde und Tag
Sie sind nicht verpflichtet, jeweils nur ein Suffix zu verwenden. Sie können mehr als ein Suffix verwenden und die Schlafdauer ist die Summe aller Suffixe.
Wenn Sie beispielsweise den folgenden Befehl verwenden:
sleep 1h 10m 5s
Dadurch wartet das Skript 1 Stunde, 10 Minuten und 5 Sekunden. Beachten Sie, dass das Suffix hier immer noch optional ist.
Bonus-Tipp:Weniger als eine Sekunde schlafen
Sie haben vielleicht bemerkt, dass die kleinste Zeiteinheit im Sleep-Befehl die Sekunde ist. Aber was ist, wenn Ihr Bash-Skript für Millisekunden schläft?
Das Gute ist, dass Sie Fließkomma (Dezimalkomma) mit dem Schlafbefehl verwenden können.
Wenn Sie also eine Pause von 5 Millisekunden einführen möchten, verwenden Sie sie wie folgt:
sleep 0.005
Sie können Dezimalpunkte auch mit anderen Suffixen verwenden.
sleep 1.5h 7.5m
Es wird eine Verzögerung von 1 Stunde, 37 Minuten und 30 Sekunden eingeführt.
Ich hoffe, Sie haben beim Lesen dieser Beispiele für Schlafbefehle nicht geschlafen 😉
Wenn Sie sich für Shell-Scripting interessieren, möchten Sie vielleicht auch etwas über String-Vergleiche in Bash lesen. Wenn Sie Fragen oder Anregungen haben, können Sie diese gerne stellen.