Slik bruker du Linux Sleep-kommandoen til å sette et BASH-skript på pause
Hva å vite
- Bruke søvn kommando pluss en tid; s=sekunder, m=minutter, h=timer, eller d=dager (for eksempel, sove 5s setter skriptet på pause i 5 sekunder).
- Bruk mann sove for mer.
Denne artikkelen forklarer hvordan du bruker Linux-søvnkommandoen til å pause en bash script, blant annet. I seg selv er sleep-kommandoen ikke veldig nyttig. Men som en del av et skript kan det brukes på mange måter. Du kan for eksempel bruke den til å sette skriptet på pause før du prøver på nytt en kommando som mislyktes første gang.

Et eksempel på bruk av Sleep-kommandoen
Tenk deg at du har et skript som behandler filer som ble lastet ned fra en annen server. Skriptet skal ikke starte kopieringsprosessen før alle filene er ferdig nedlastet. Nedlastingsprosessen utføres av et eget skript som kjører før ditt.
Skriptet som kopierer filene kan inneholde en løkke for å teste om alle filene er lastet ned (det gjør dette ved å sjekke om 50 filer er funnet før du starter kopieringsprosessen).
Det er ingen vits i å teste skriptet konstant siden dette bruker prosessortid. I stedet kan du ta en pause i noen minutter mellom hver test før du prøver igjen. Søvnkommandoen er perfekt under slike omstendigheter.
Slik bruker du Sleep-kommandoen
For å bruke Linux sleep-kommandoen, skriv inn følgende i terminalvinduet:
sove 5s
Kommandoen ovenfor gjør at terminalen stopper i 5 sekunder før den går tilbake til kommandolinjen.
Sleep-kommandoen krever nøkkelordet søvn, etterfulgt av tallet du vil sette på pause og måleenheten.
Du kan spesifisere forsinkelsen i sekunder, minutter, timer eller dager.
- s: Sekunder
- m: Minutter
- h: Timer
- d: Dager
Når det gjelder å sette et skript på pause i flere dager, bruk en cron-jobb for å kjøre skriptet med jevne mellomrom, i motsetning til å ha et skript som kjøres i bakgrunnen i flere dager.
En cron-jobb er en Linux-kommando eller et skript som du kan planlegge å kjøre på et bestemt tidspunkt eller dag. Disse er nyttige for å gjenta oppgaver over lang tid.
Tallet for søvnkommandointervallet trenger ikke å være et helt tall. Du kan også bruke flyttall.

For eksempel inkluderer følgende syntaks en brøkdel av et sekund:
sove 3,5 sek
Et eksempel på bruk av Sleep-kommandoen
Følgende skript viser hvordan du bruker sleep-kommandoen til å lage en terminalbasert nedtellingsklokke:
#!/bin/bash
x=10
mens [ $x -gt 0 ]
gjøre
sove 1s
klar
ekko "$x sekunder til sprengning av"
x=$(($x - 1 ))
ferdig
Slik fungerer dette skriptet:
- Skriptet setter variabelen x til 10.
- While-løkken fortsetter å iterere mens verdien av x er større enn null.
- Sleep-kommandoen pauser skriptet i 1 sekund hver gang rundt loopen.
- Resten av skriptet tømmer skjermen for hver iterasjon, viser meldingen "x sekunder til blast off," og trekker 1 fra verdien av x.

Uten sleep-kommandoen ville skriptet zoome gjennom, og meldingene ville vises for raskt.
Slik bruker du sovekommandobrytere
Sleep-kommandoen har bare et par brytere.
De --hjelp bryter viser hjelpefilen for dvalekommandoen. Du kan oppnå det samme ved å bruke man-kommandoen som følger:
mann sove.
De --versjon bryteren viser versjonen av dvalekommandoen som er installert på systemet.
Informasjonen som returneres av --version-bryteren er som følger:
- Versjonsnummer
- Opphavsrettsdetaljer
- Tillatelse
- Forfattere
Sett terminalkommandoer på pause med hvilemodus
En annen god bruk for sleep-kommandoen er å pause kommandoer som du skriver inn i terminalvinduet.
Hvis du vil, kan du skrive to kommandoer på rad, mens du venter på at den første er ferdig før du skriver den andre.
En raskere tilnærming er imidlertid å skrive de to kommandoene på én linje, med en dvalekommando mellom hver kommando:
$ cd /mydirectory/ && sleep 3 && ls.
Slik fungerer denne kommandoen:
- De cd /minkatalog/ kommandoen endrer katalogen.
- De sove 3 kommandoen venter i tre sekunder på at cd-kommandoen er ferdig.
- De ls kommandoen kjører og viser kataloginnholdet.
For et enkelt eksempel som dette sparer sleep-kommandoen bare litt tid. Men hvis du har en lang liste med kommandoer, sparer muligheten til å skrive kommandoene på én linje tid.