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ă plac blocarea ferestrei terminale, ci ca parte a unui script, acesta poate fi folosit în mai multe moduri, 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 este pornit).
Nu are rost să testeze continuu scenariul, deoarece ocupă timpul procesorului. În schimb, puteți alege să testați dacă există suficiente fișiere copiate și dacă nu există, întrerupeți câteva minute și încercați din nou. Comanda de somn este perfectă în aceste circumstanțe.
Cum se utilizează comanda de somn
Pentru a utiliza comanda de dormit 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 "somn" urmat de numărul pe care doriți să îl întrerupeți și apoi 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 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ă:
Un exemplu Utilizați pentru comanda de somn
Următorul script arată cum se utilizează comanda de somn pentru a face un ceas de numărătoare pe bază de terminal:
#! / Bin / bashx = 10în timp ce $ x -gt 0dosomn 1sclarecho "$ 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: Întreruperi