Connect with us

Wie man

So pausieren Sie ein Bash-Skript mit dem Linux-Schlafbefehl

So vergleichen Sie zwei Textdateien im Linux-Terminal

Fatmawati Achmad Zaenuri/Shutterstock.com

Der Befehl sleep lässt Ihren Linux-Computer nichts tun. Kontraintuitiv vielleicht, aber manchmal ist eine Zeit der Inaktivität genau das Richtige. Dieser Artikel zeigt Ihnen, wie Sie diesen Bash-Shell-Befehl effektiv verwenden.

Verwenden von sleep ist einfach. Auf dem Befehlszeilentyp sleep, ein Leerzeichen, eine Zahl, und drücken Sie dann die Eingabetaste.

sleep 5

Der Cursor verschwindet für fünf Sekunden und kehrt dann zurück. Was ist passiert? Verwenden von sleep in der Befehlszeile weist Bash an, die Verarbeitung für die von Ihnen angegebene Dauer zu unterbrechen. In unserem Beispiel waren dies fünf Sekunden.

Keine sichtbare Ausgabe des Befehls sleep 5

Wir können Dauern übergeben an sleep in Tagen, Stunden und Minuten sowie in Sekunden. Um dies zu tun, fügen Sie entweder ein Suffix hinzu d, h, m, oder s mit der Dauer. Um den Schlaf für einen Tag, vier Stunden, sieben Minuten und fünf Sekunden anzuhalten, verwenden Sie einen Befehl wie diesen:

sleep 1d 4h 7m 5s

Das s Suffix (für Sekunden) ist optional. Ohne Suffix, sleep behandelt jede Dauer als Sekunden. Angenommen, du wolltest haben sleep Pause für fünf Minuten und zwanzig Sekunden. Ein korrektes Format dieses Befehls ist:

sleep 5m 20

Wenn Sie vergessen, die anzugeben m Suffix für die Minutendauer, werden Sie anweisen sleep für fünf Sekunden pausieren und dann noch einmal für zwanzig Sekunden. So sleep wird für 25 Sekunden pausieren.

Bei vielen Befehlen müssen Sie Parameter in einer bestimmten Reihenfolge angeben, aber sleep ist sehr verzeihend. Sie können sie in beliebiger Reihenfolge bereitstellen und sleep wird Sinn aus ihnen machen. Sie können auch eine Gleitkommazahl als Parameter angeben. 0,5h ist beispielsweise eine gültige Möglichkeit, Ihren Wunsch anzugeben sleep eine halbe Stunde pausieren.

Alle folgenden (zunehmend exzentrischen) Befehle erzählen sleep 10 Sekunden pausieren.

sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m

Verwenden des Ruhezustands zum Anhalten vor einem Befehl

Das sleep Befehl kann verwendet werden, um eine Pause vor der Ausführung eines Befehls zu setzen. Dieser Befehl würde 15 Sekunden lang pausieren und dann einen Piepton geben.

sleep 15 && echo -en '07'

Verwenden des Energiesparmodus, um zwischen zwei Befehlen zu pausieren

Sie können verwenden sleep um eine Pause zwischen zwei Befehlen zu setzen. Dieser Befehl würde die Dateien in Ihrem Documents-Verzeichnis auflisten, für fünf Sekunden anhalten und dann das aktuelle Arbeitsverzeichnis in Ihr Home-Verzeichnis ändern:

ls -R ~/Documents && sleep 5 && cd ~

Ausgabe von zwei durch sleep getrennten Befehlen

Verwenden des Energiesparmodus, um die Ausführung eines Skripts anzuhalten

Du kannst den … benutzen sleep Befehl in Shell-Skripten, um die Ausführung des Skripts für eine bestimmte Zeit zu unterbrechen. Normalerweise tun Sie dies, um einem Prozess genügend Zeit zu geben, damit er abgeschlossen werden kann, bevor das Skript seine Verarbeitung fortsetzt. Sie können es auch verwenden, um die Rate der Anforderungen eines Skripts an eine andere Ressource zu begrenzen.

Um genau dies zu demonstrieren, ist hier ein Skript, das einen Google-Webdienst mit aufruft curl. Wenn Sie den Webservice mit dem ISBN Nummer eines Buches, antwortet es mit einem Dump der JSON-Daten zu diesem Buch. Wir können diese Daten analysieren, indem wir sie durch die jq Dienstprogramm, um den Titel des Buches abzurufen. Damit das Skript den Webdienst nicht belastet, schläft es zwischen den Webanfragen eine Sekunde lang.

Erstellen Sie eine Datei mit dem folgenden Text und speichern Sie sie unter check_book.sh.

#!/bin/bash

for book in `cat $1`
do
 echo $book":"
 curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | .[] | .volumeInfo.title'
 echo ""
 sleep 1
done

echo "All done."

Geben Sie den folgenden Befehl ein, um die Ausführungsberechtigungen festzulegen und das Skript ausführbar zu machen.

chmod +x check_book.sh

Das Skript erfordert die curl und jq Dienstprogramme. Benutzen apt-get um diese Pakete auf Ihrem System zu installieren, wenn Sie Ubuntu oder eine andere Debian-basierte Distribution verwenden. Verwenden Sie bei anderen Linux-Distributionen stattdessen das Paketverwaltungstool Ihrer Linux-Distribution.

sudo apt-get install curl
sudo apt-get install jq

Erstellen Sie eine Textdatei mit den folgenden Zahlen und speichern Sie sie unter books.txt.

9781565921276
9781874416685
9781565921672
9780521431088
9781491941591

Führen Sie die check_book.sh Skript und übergeben Sie das books.txt Datei als Parameter.

./check_book.sh books.txt

Die Anfragen werden im Sekundentakt an den Google-Webdienst gestellt. Der Titel des Buches erscheint kurz nach jeder Abfrage der ISBN-Nummer.

Das ist alles zu sleep. Das Innenleben der check_book.sh Skripte sprengen den Rahmen dieses Artikels. Das Skript wurde ausschließlich ausgewählt, um eine gültige Verwendung des sleep Befehl. Wenn Sie mehr über die beiden Hauptkomponenten des Skripts erfahren möchten, lesen Sie die curl Projektseite und das jq Online-Handbuch.

Continue Reading
Click to comment

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tendencia