Cum să utilizați comanda Linux Sleep pentru a întrerupe un script BASH
Ce să știi
- Folosește dormi comanda plus un timp; s=secunde, m=minute, h=ore, sau d=zile (de exemplu, dormi 5 secunde întrerupe scriptul timp de 5 secunde).
- Utilizare om somn pentru mai mult.
Acest articol explică cum să utilizați comanda de repaus Linux pentru a întrerupe a scriptul bash, printre alte lucruri. Pe cont propriu, comanda sleep nu este foarte utilă. Cu toate acestea, ca parte a unui script, acesta poate fi folosit în multe moduri. De exemplu, îl puteți folosi pentru a întrerupe scriptul înainte de a reîncerca o comandă care a eșuat prima dată.

Un exemplu de utilizare a comenzii Sleep
Imaginați-vă că aveți un script care procesează fișierele care au fost descărcate de pe alt server. Scriptul nu ar trebui să înceapă procesul de copiere până când toate fișierele nu termină descărcarea. Procesul de descărcare este efectuat de un script separat care rulează înaintea ta.
Scriptul care copiază fișierele poate conține o buclă pentru a testa dacă toate fișierele s-au descărcat (face acest lucru verificând dacă s-au găsit 50 de fișiere înainte de a începe procesul de copiere).
Nu are rost să testeze scriptul în mod constant, deoarece aceasta utilizează timpul procesorului. În schimb, s-ar putea să vă întrerupeți câteva minute între fiecare test înainte de a încerca din nou. Comanda de somn este perfectă în astfel de circumstanțe.
Cum să utilizați comanda Sleep
Pentru a utiliza comanda Linux Sleep, introduceți următoarele în fereastra terminalului:
dormi 5 secunde
Comanda de mai sus face terminalul să se oprească timp de 5 secunde înainte de a reveni la linia de comandă.
Comanda sleep necesită cuvântul cheie dormi, urmat de numărul pe care doriți să îl întrerupeți și de unitatea de măsură.
Puteți specifica întârzierea în secunde, minute, ore sau zile.
- s: Secunde
- m: Minute
- h: Ore
- d: Zile
Când vine vorba de întreruperea unui script timp de zile, utilizați un job cron pentru a rula scriptul la intervale regulate, spre deosebire de a rula un script în fundal timp de zile.
Un job cron este o comandă sau un script Linux pe care îl puteți programa să ruleze la o oră sau o zi stabilite. Acestea sunt utile pentru repetarea sarcinilor pe o perioadă lungă de timp.
Numărul pentru intervalul de comandă de repaus nu trebuie să fie un număr întreg. De asemenea, puteți utiliza numere în virgulă mobilă.

De exemplu, următoarea sintaxă include o fracțiune de secundă:
dormi 3,5 secunde
Un exemplu de utilizare a comenzii Sleep
Următorul script arată cum să utilizați comanda sleep pentru a realiza un ceas de numărătoare inversă bazat pe terminal:
#!/bin/bash
x=10
în timp ce [ $x -gt 0 ]
do
somn 1s
clar
ecou „$x secunde până la decolare”
x=$(( $x - 1 ))
Terminat
Iată cum funcționează acest script:
- Scriptul setează variabila x la 10.
- Bucla while continuă să se repete în timp ce valoarea lui x este mai mare decât zero.
- Comanda sleep întrerupe scriptul timp de 1 secundă de fiecare dată în jurul buclei.
- Restul scriptului șterge ecranul la fiecare iterație, afișează mesajul „x secunde până la explozie” și scade 1 din valoarea lui x.

Fără comanda sleep, scriptul s-ar mări, iar mesajele s-ar afișa prea repede.
Cum să utilizați comutatoarele de comandă de repaus
Comanda sleep are doar câteva comutatoare.
The --Ajutor comutatorul afișează fișierul de ajutor pentru comanda sleep. Puteți realiza același lucru folosind comanda man după cum urmează:
om somn.
The --versiune comutatorul arată versiunea comenzii de repaus care este instalată pe sistem.
Informațiile returnate de comutatorul --version sunt după cum urmează:
- Versiunea numarul
- Detalii privind drepturile de autor
- Licență
- Autorii
Întrerupeți comenzile terminalului cu Sleep
O altă utilizare bună pentru comanda sleep este să întrerupeți comenzile pe care le introduceți în fereastra terminalului.
Dacă doriți, puteți introduce două comenzi la rând, așteptând ca prima să se termine înainte de a tasta a doua.
Cu toate acestea, o abordare mai rapidă este să tastați cele două comenzi pe o singură linie, cu o comandă de repaus între fiecare comandă:
$ cd /mydirectory/ && sleep 3 && ls.
Cum funcționează această comandă:
- The cd /directorul meu/ comanda schimbă directorul.
- The somn 3 comanda așteaptă trei secunde pentru ca comanda cd să se termine.
- The ls comanda execută și afișează conținutul directorului.
Pentru un exemplu simplu ca acesta, comanda sleep economisește doar puțin timp. Cu toate acestea, dacă aveți o listă lungă de comenzi, posibilitatea de a introduce comenzile pe o singură linie economisește timp.