Cum să utilizați comanda Linux "sleep" pentru a întrerupe un script BASH

Acest ghid arată cum să utilizați comanda de somn Linux pentru a întrerupe un script bash.

Pe cont propriu, comanda de somn este complet inutilă dacă nu vă place blocarea ferestrei terminale, dar ca parte a unui script se poate folosi în mai multe moduri diferite, inclusiv ca un factor de pauză înainte de a reîncerca o comandă.

De exemplu, imaginați-vă că ați avut un script care procesa fișierele copiate de pe un alt server. Scriptul nu trebuie să pornească procesul de copiere până când toate fișierele au terminat descărcarea.

Procesul de descărcare este realizat printr-un script complet separat.

Scriptul pentru copierea fișierelor poate conține o buclă pentru a testa dacă toate fișierele au fost descărcate (adică știe că ar trebui să existe 50 de fișiere și când au fost găsite 50 de fișiere, procesul de copiere a fost pornit).

Nu există nici un punct în care scriptul să testeze continuu, deoarece ocupă timpul procesorului. În schimb, puteți alege să testați dacă există suficiente fișiere copiate și dacă nu există o pauză pentru câteva minute și apoi încercați din nou. Comanda de somn este perfectă în aceste circumstanțe.

Cum se utilizează comanda de somn

Pentru a utiliza comanda sleep Linux introduceți următoarele în fereastra terminalului:

somn 5s

Comanda de mai sus va face pauza terminală timp de 5 secunde înainte de a vă întoarce la linia de comandă.

Comanda de somn necesită cuvântul cheie de somn, urmat de numărul pe care doriți să îl întrerupeți și apoi de unitatea de măsură.

Puteți specifica întârzierea în secunde, minute, ore sau zile.

Când vine vorba de zile de așteptare pentru ca ceva să se întâmple, s-ar putea să merită să luați în considerare utilizarea unei sarcini cron pentru a rula script-ul la intervale regulate, spre deosebire de a avea un script care rulează în fundal pentru zile în cele din urmă.

Numărul pentru comanda de somn nu trebuie să fie un număr întreg.

De asemenea, puteți utiliza numere de puncte în virgulă mobilă.

De exemplu, este bine să utilizați următoarea sintaxă:

somn 3.5s

Un exemplu de utilizare pentru comanda Sleep

Următorul script arată cum se utilizează comanda de somn pentru a face un ceas de numărătoare pe bază de terminal:

#! / Bin / bash

x = 10

în timp ce [$ x -gt 0]

do

somn 1s

clar

echo "$ x secunde până la blast off"

x = $ (($ x - 1))

Terminat

Scriptul stabilește variabila x la 10. Bucla în timp ce va continua să repete în timp ce valoarea lui x este mai mare decât zero.

Comanda de somn întrerupe script-ul pentru o secundă de fiecare dată în jurul buclei.

Restul scriptului șterge ecranul în fiecare iterație, afișează mesajul "x secunde până la dezactivare" (adică 10) și apoi scade 1 din valoarea lui x.

Fără comanda de somn, scriptul se va apropia și mesajele vor fi afișate prea repede.

Comanda de somn are doar câteva comutatoare.

Comutatorul --help afișează fișierul de ajutor pentru comanda de somn. Puteți obține același lucru utilizând comanda om, după cum urmează:

bărbat dormește

Comanda --versiune arată versiunea comenzii de somn care este instalată pe sistemul dvs.

Informațiile returnate de comutatorul --versiune sunt următoarele: