Das Kommandozeilen-Tool sleep
ermöglicht dir, den laufenden Prozess für eine festgelegte Zeitdauer zu pausieren. Einfach gesagt, unterbricht sleep
die Ausführung des folgenden Befehls für eine angegebene Anzahl von Sekunden.
Der Einsatz von sleep
innerhalb eines Bash-Skripts ist besonders nützlich, beispielsweise wenn eine fehlgeschlagene Aktion erneut ausgeführt werden muss oder in einer Schleife.
In diesem Leitfaden erfährst du, wie du den Linux-Befehl sleep
anwendest.
Anwendung des sleep
-Befehls
Die Syntax für den sleep
-Befehl ist wie folgt:
sleep NUMBER[SUFFIX]...
Die NUMMER
kann entweder eine positive ganze Zahl oder eine Fließkommazahl sein.
Der SUFFIX
kann einer der folgenden Werte annehmen:
s
– Sekunden (Standard)m
– Minutenh
– Stundend
– Tage
Wird kein Suffix angegeben, werden standardmäßig Sekunden verwendet.
Bei Angabe von zwei oder mehr Argumenten entspricht die Gesamtdauer der Summe der angegebenen Werte.
Hier sind einige einfache Beispiele zur Verwendung des sleep
-Befehls:
- Ruhe für 5 Sekunden:
sleep 5
- Ruhe für 0,5 Sekunden:
sleep 0.5
- Ruhe für 2 Minuten und 30 Sekunden:
sleep 2m 30s
Beispiele für Bash-Skripte
In diesem Abschnitt werfen wir einen Blick auf einige grundlegende Shell-Skripte, um zu demonstrieren, wie der sleep
-Befehl eingesetzt wird.
#!/bin/bash
# Startzeit
date +"%H:%M:%S"
# Ruhe für 5 Sekunden
sleep 5
# Endzeit
date +"%H:%M:%S"
Wenn du das Skript ausführst, wird die aktuelle Uhrzeit im Format HH:MM:SS
angezeigt. Anschließend pausiert der Befehl sleep
das Skript für 5 Sekunden. Nach Ablauf der angegebenen Zeitdauer wird in der letzten Zeile des Skripts erneut die aktuelle Uhrzeit angezeigt.
Die Ausgabe könnte etwa so aussehen:
13:34:40
13:34:45
Lass uns ein weiteres, etwas fortgeschritteneres Beispiel betrachten:
#!/bin/bash
while :
do
if ping -c 1 ip_address >/dev/null
then
echo "Host ist online"
break
fi
sleep 5
done
Das Skript überprüft alle 5 Sekunden, ob ein Host online ist oder nicht. Wenn der Host online geht, informiert dich das Skript und stoppt.
So funktioniert das Skript:
- In der ersten Zeile erstellen wir eine unendliche
while
-Schleife. - Anschließend nutzen wir den Befehl
ping
, um zu prüfen, ob der Host mit der IP-Adresseip_address
erreichbar ist oder nicht. - Wenn der Host erreichbar ist, gibt das Skript „Host ist online“ aus und beendet die Schleife.
- Wenn der Host nicht erreichbar ist, pausiert der
sleep
-Befehl das Skript für 5 Sekunden, und die Schleife startet erneut.
Fazit
Der sleep
-Befehl gehört zu den einfachsten Linux-Befehlen und dient dazu, die Ausführung des nachfolgenden Befehls für eine bestimmte Zeitdauer zu unterbrechen.
Wenn du Fragen oder Anregungen hast, zögere nicht, einen Kommentar zu hinterlassen.