Denne vejledning viser, hvordan du bruger Linux-sleep-kommandoen til at sætte et bash script i pause.
På egen hånd er søvnkommandoen helt ubrugelig, medmindre du vil låse dit terminalvindue op, men som en del af et script kan den bruges på mange forskellige måder, herunder som en pausefaktor, inden du prøver igen.
Forestil dig for eksempel, at du havde et script, der behandlede filer kopieret fra en anden server. Scriptet skal ikke starte kopieringsprocessen, før alle filer er færdige med at downloade. Download processen udføres af et helt separat script.
Skriften til kopiering af filerne kan godt indeholde en loop for at teste om alle filer er blevet downloadet (dvs. det ved, at der skal være 50 filer, og når der er fundet 50 filer, kopieres processen).
Der er ingen mening om scriptet løbende at teste, da det tager op på processortiden. I stedet kan du vælge at teste om der er nok filer kopieret, og hvis det ikke er muligt, sæt et pause i et par minutter, og prøv igen. Søvnkommandoen er perfekt under disse omstændigheder.
Sådan bruges søvn kommandoen
For at bruge kommandoen Linux søvn skal du indtaste følgende i terminalvinduet:
sove 5s
Ovennævnte kommando vil gøre din terminal pause i 5 sekunder, inden du vender tilbage til kommandolinjen.
Søvnkommandoen kræver søgeordet 'sove' efterfulgt af det nummer, du vil pause ved og derefter måleenheden.
Du kan angive forsinkelsen i sekunder, minutter, timer eller dage.
- s - sekunder
- m - minutter
- h - timer
- d-dage
Når det kommer til ventedage for at noget kan ske, kan det være værd at overveje at bruge et cron-job til at køre scriptet med jævne mellemrum, i modsætning til at have et script, der kører i baggrunden for dage til slut.
Nummeret til søvnkommandoen behøver ikke at være et helt tal. Du kan også bruge flytende punktnumre.
For eksempel er det helt ok at bruge følgende syntaks:
Et eksempel bruges til søvn kommandoen
Følgende skript viser, hvordan du bruger kommandoen søvn til at lave en terminalbaseret nedtællingsklokke:
#! / Bin / bashx = 10mens $ x -gt 0gøresove 1sklarekko "$ x sekunder indtil blast off"x = $ (($ x - 1))Færdig Scriptet sætter variablen x til 10. Mens loop'en fortsætter med at gentage, mens værdien af x er større end nul. Kommandoen til søvn pauser scriptet i 1 sekund hver gang rundt om sløjfen. Resten af scriptet rydder skærmen hver iteration, viser meddelelsen "x sekunder indtil blast off" (dvs. 10) og trækker derefter 1 fra værdien af x. Uden kommandoen søvn ville scriptet zoome gennem og meddelelserne ville blive vist for hurtigt. Søvnkommandoen har kun et par afbrydere. Hjælpekontakten viser hjælpefilen til søvnkommandoen. Du kan opnå det samme ved at bruge kommandoen man som følger: mand sover Kommandoen --version viser den version af søvnkommandoen, der er installeret på dit system. Oplysningerne, der returneres af versionversionen, er som følger: Skifter