Skip to content

Hoe het Linux-slaapcommando te gebruiken om een ​​BASH-script te pauzeren?

9 de september de 2021
use linux sleep command 3572060 21f86713ee724a4898c755e6359f9ca7

Wat te weten

  • Gebruik de slaap commando plus een tijd; s=seconden, m=minuten, H=uur, of NS=dagen (bijvoorbeeld, slaap 5s pauzeert het script gedurende 5 seconden).
  • Gebruik maken van man slaap voor meer.

In dit artikel wordt uitgelegd hoe je het Linux sleep-commando kunt gebruiken om onder andere een bash-script te pauzeren. Op zichzelf is het slaapcommando niet erg handig. Als onderdeel van een script kan het echter op veel manieren worden gebruikt. U kunt het bijvoorbeeld gebruiken om het script te pauzeren voordat u een opdracht opnieuw probeert die de eerste keer mislukte.

Een voorbeeld van het gebruik van de slaapopdracht

Stel je voor dat je een script hebt dat bestanden verwerkt die van een andere server zijn gedownload. Het script zou het kopieerproces pas moeten starten als alle bestanden zijn gedownload. Het downloadproces wordt uitgevoerd door een afzonderlijk script dat vóór het uwe wordt uitgevoerd. Het script dat de bestanden kopieert, kan een lus bevatten om te testen of alle bestanden zijn gedownload (het doet dit door te controleren of er 50 bestanden zijn gevonden voordat het kopieerproces wordt gestart). Het heeft geen zin om het script constant te testen, omdat dit processortijd gebruikt. In plaats daarvan kunt u tussen elke test een paar minuten pauzeren voordat u het opnieuw probeert. Het slaapcommando is perfect in dergelijke omstandigheden.

Hoe de slaapopdracht te gebruiken

Om de Linux sleep-opdracht te gebruiken, voert u het volgende in het terminalvenster in: sleep 5s

class=”ql-syntax”> De bovenstaande opdracht laat de terminal 5 seconden pauzeren voordat hij terugkeert naar de opdrachtregel. Het slaapcommando vereist het sleutelwoord slaap, gevolgd door het nummer dat u wilt pauzeren en de maateenheid. U kunt de vertraging opgeven in seconden, minuten, uren of dagen.

  • s: Seconden
  • m: Minuten
  • H: Uren
  • NS: Dagen

Als het gaat om het dagenlang pauzeren van een script, gebruik dan een cron-job om het script met regelmatige tussenpozen uit te voeren, in plaats van een script dagenlang op de achtergrond te laten draaien. Een cron-taak is een Linux-opdracht of -script dat u kunt plannen om op een vaste tijd of dag te worden uitgevoerd. Deze zijn handig voor het herhalen van taken over een lange periode. Het getal voor het slaapopdracht-interval hoeft geen geheel getal te zijn. U kunt ook getallen met drijvende komma gebruiken.

Linux slaap commando

De volgende syntaxis bevat bijvoorbeeld een fractie van een seconde: slaap 3,5s

class=”ql-syntaxis”>

Een voorbeeld van het gebruik van de slaapopdracht

Het volgende script laat zien hoe je het sleep-commando kunt gebruiken om een ​​op een terminal gebaseerde aftelklok te maken: #!/bin/bash
x=10
terwijl [ $x -gt 0 ]
doen
slaap 1s
Doorzichtig
echo “$x seconden tot ontploffing”
x=$(( $x – 1 ))
gedaan

class=”ql-syntax”> Dit script werkt als volgt:

  • Het script stelt de variabele x in op 10.
  • De while-lus blijft herhalen terwijl de waarde van x groter is dan nul.
  • De sleepopdracht pauzeert het script elke keer gedurende 1 seconde rond de lus.
  • De rest van het script maakt het scherm elke iteratie leeg, geeft het bericht “x seconden tot ontploffing” weer en trekt 1 af van de waarde van x.

Linux slaap in script

Zonder de sleepopdracht zou het script doorzoomen en zouden de berichten te snel worden weergegeven.

Slaapopdrachtschakelaars gebruiken

Het slaapcommando heeft slechts een paar schakelaars. De –helpen switch toont het helpbestand voor de sleepopdracht. U kunt hetzelfde bereiken door het man-commando als volgt te gebruiken: man sleep

type=”code”> De –versie switch toont de versie van de slaapopdracht die op het systeem is geïnstalleerd. De informatie die wordt geretourneerd door de schakeloptie –version is als volgt:

  • Versienummer
  • Copyrightgegevens
  • Vergunning
  • Auteurs

Terminal-opdrachten pauzeren met slaapstand

Een ander goed gebruik van de slaapopdracht is om opdrachten die u in het terminalvenster typt, te pauzeren. Als je wilt, kun je twee opdrachten achter elkaar typen, wachtend tot de eerste klaar is voordat je de tweede typt. Een snellere benadering is echter om de twee opdrachten op één regel te typen, met een slaapopdracht tussen elke opdracht: $ cd /mydirectory/ && sleep 3 && ls

type=”code”> Hoe dit commando werkt:

  • De cd /mijndirectory/ commando verandert de directory.
  • De slaap 3 opdracht wacht drie seconden totdat de opdracht cd is voltooid.
  • De ls commando voert de directory-inhoud uit en geeft deze weer.

Voor een eenvoudig voorbeeld als dit bespaart het slaapcommando slechts een klein beetje tijd. Als u echter een lange lijst met opdrachten heeft, bespaart de mogelijkheid om de opdrachten op één regel te typen tijd.