
Het slaapcommando zorgt ervoor dat uw Linux-computer niets doet. Contra-intuïtief misschien, maar een periode van inactiviteit is soms precies wat nodig is. Dit artikel laat zien hoe u deze Bash-shellopdracht effectief kunt gebruiken.
Gebruik makend van sleep is makkelijk. Typ op de opdrachtregel sleep, een spatie, een cijfer en druk vervolgens op Enter.
sleep 5
De cursor verdwijnt vijf seconden en keert dan terug. Wat is er gebeurd? Gebruik makend van sleep op de opdrachtregel geeft Bash de opdracht om de verwerking op te schorten voor de duur die u hebt opgegeven. In ons voorbeeld was dit vijf seconden.

We kunnen de duur doorgeven aan sleep in dagen, uren en minuten, maar ook in seconden. Voeg hiervoor een achtervoegsel toe van een van beide d, h, m, of s met de duur. Gebruik een commando als dit om de slaap een dag, vier uur, zeven minuten en vijf seconden te laten pauzeren:
sleep 1d 4h 7m 5s
De s achtervoegsel (voor seconden) is optioneel. Zonder achtervoegsel, sleep behandelt elke duur als seconden. Stel dat je wilde hebben sleep pauzeer gedurende vijf minuten en twintig seconden. Een correct formaat van deze opdracht is:
sleep 5m 20
Als u vergeet het m achtervoegsel op de duur van de minuten, geeft u instructies sleep om vijf seconden te pauzeren en dan weer twintig seconden. Zo sleep zal gedurende 25 seconden pauzeren.
Bij veel opdrachten moet u parameters in een specifieke volgorde opgeven, maar sleep is erg vergevingsgezind. U kunt ze in elke volgorde opgeven en sleep zal er zin uit hebben. U kunt ook een drijvende-kommagetal als parameter opgeven. 0,5 uur is bijvoorbeeld een geldige manier om uw wens aan te geven sleep om een half uur te pauzeren.
Alle volgende (steeds excentriekere) commando’s vertellen sleep om 10 seconden te pauzeren.
sleep 10
sleep 5 5s
Sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m
Slaap gebruiken om te pauzeren voor een opdracht
De sleep commando kan worden gebruikt om een pauze te geven voordat een commando wordt uitgevoerd. Dit commando pauzeert gedurende 15 seconden en geeft dan een piep.
sleep 15 && echo -en ' 07'
Slaap gebruiken om te pauzeren tussen twee opdrachten
Je kunt gebruiken sleep om een pauze te geven tussen twee opdrachten. Deze opdracht geeft een lijst van de bestanden in uw map Documenten, pauzeert vijf seconden en verandert vervolgens de huidige werkmap naar uw thuismap:
ls -R ~/Documents && sleep 5 && cd ~

Slaap gebruiken om de uitvoering van een script te onderbreken
U kunt de sleep commando in shellscripts om de uitvoering van het script voor een bepaalde tijd te pauzeren. Meestal doet u dit om een bepaald proces voldoende tijd te geven om te voltooien voordat het script doorgaat met de verwerking. U kunt het ook gebruiken om de verzoeken die een script aan een andere bron doet, te beperken.
Om precies dat aan te tonen, is hier een script dat een Google-webservice oproept met curl. Wanneer u de webservice opvraagt met het ISBN-nummer van een boek, reageert deze met een hoop JSON-gegevens over dat boek. We kunnen die gegevens ontleden door ze door het jq hulpprogramma om de titel van het boek op te halen. Zodat het script de webservice niet beklemtoont, slaapt het een seconde tussen webverzoeken.
Maak een bestand met de volgende tekst en sla het op als 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."
Typ de volgende opdracht om de uitvoeringsmachtigingen in te stellen en het script uitvoerbaar te maken.
chmod +x check_book.sh
Het script vereist het curl en jq Gereedschap. Gebruik apt-get om deze pakketten op uw systeem te installeren als u Ubuntu of een andere op Debian gebaseerde distributie gebruikt. Gebruik op andere Linux-distributies de pakketbeheertool van je Linux-distributie.
sudo apt-get install curl
sudo apt-get install jq
Maak een tekstbestand met de volgende nummers en sla het op als books.txt.
9781565921276 9781874416685 9781565921672 9780521431088 9781491941591
Voer de … uit check_book.sh script en geef het books.txt bestand als parameter.
./check_book.sh books.txt

De verzoeken worden met tussenpozen van één seconde bij de Google-webservice ingediend. De titel van het boek verschijnt kort nadat elk ISBN-nummer is opgevraagd.
Dat is alles wat er is sleep. De innerlijke werking van het check_book.sh script vallen buiten het bestek van dit artikel. Het script is puur gekozen om een geldig gebruik van de sleep opdracht. Als je meer wilt lezen over de twee hoofdcomponenten van het script, raadpleeg dan het curl projectpagina en het jq online handleiding.