Kā izmantot Linux miega komandu, lai apturētu BASH skriptu

Kas jāzina

  • Izmantojiet Gulēt komanda plus laiks; s=sekundes, m=minūtes, h=stundas, vai d=dienas (piemēram, gulēt 5s aptur skriptu uz 5 sekundēm).
  • Izmantot vīrietis guļ vairāk.

Šajā rakstā ir paskaidrots, kā izmantot Linux miega komandu, lai apturētu a bash skripts, cita starpā. Pati par sevi miega komanda nav īpaši noderīga. Tomēr kā daļu no skripta to var izmantot daudzos veidos. Piemēram, varat to izmantot, lai apturētu skriptu pirms atkārtotas komandas, kas neizdevās pirmo reizi, mēģinājuma.

Persona, kas klēpjdatorā izmanto Linux miega komandu 20 sekundes
Keilijs Makkīns / Lifewire

Miega komandas izmantošanas piemērs

Iedomājieties, ka jums ir skripts, kas apstrādā failus, kas lejupielādēti no cita servera. Skriptam nevajadzētu sākt kopēšanas procesu, kamēr nav pabeigta visu failu lejupielāde. Lejupielādes procesu veic atsevišķs skripts, kas tiek palaists pirms jūsu.

Skripts, kas kopē failus, var saturēt cilpu, lai pārbaudītu, vai visi faili ir lejupielādēti (to dara, pirms kopēšanas procesa sākšanas pārbaudot, vai ir atrasti 50 faili).

Nav jēgas pastāvīgi pārbaudīt skriptu, jo tas izmanto procesora laiku. Tā vietā starp katru testu varat uz dažām minūtēm pauzēt, pirms mēģināt vēlreiz. Miega komanda šādos apstākļos ir ideāla.

Kā lietot miega komandu

Lai izmantotu Linux miega komandu, termināļa logā ievadiet:

gulēt 5s

Iepriekš minētā komanda liek terminālim apturēt 5 sekundes pirms atgriešanās komandrindā.

Miega komandai ir nepieciešams atslēgvārds Gulēt, kam seko skaitlis, kuru vēlaties apturēt, un mērvienība.

Varat norādīt aizkavi sekundēs, minūtēs, stundās vai dienās.

  • s: Sekundes
  • m: minūtes
  • h: Stundas
  • d: Dienas

Ja runa ir par skripta apturēšanu uz dienām, izmantojiet cron uzdevumu, lai palaistu skriptu ar regulāriem intervāliem, nevis skripta darbību fonā vairākas dienas.

Cron darbs ir Linux komanda vai skripts, kuru varat ieplānot palaist noteiktā laikā vai dienā. Tie ir noderīgi, atkārtojot uzdevumus ilgu laiku.

Miega komandas intervāla skaitlim nav jābūt veselam skaitlim. Varat arī izmantot peldošā komata skaitļus.

Linux miega komanda

Piemēram, šī sintakse ietver sekundes daļu:

gulēt 3,5s

Miega komandas izmantošanas piemērs

Šis skripts parāda, kā izmantot miega komandu, lai izveidotu uz termināli balstītu atpakaļskaitīšanas pulksteni:

#!/bin/bash
x=10
kamēr [ $x -gt 0 ]
darīt
gulēt 1s
skaidrs
atbalss "$x sekundes līdz izskanējumam"
x=$(($x - 1 ))
darīts

Lūk, kā darbojas šis skripts:

  • Skripts iestata mainīgo x uz 10.
  • Cilpa while turpina atkārtot, kamēr x vērtība ir lielāka par nulli.
  • Miega komanda katru reizi ap cilpu aptur skriptu uz 1 sekundi.
  • Pārējā skripta daļa notīra ekrānu katrā iterācijā, parāda ziņojumu "x sekundes līdz izslēgšanai" un atņem 1 no x vērtības.
Linux miega režīms skriptā

Bez miega komandas skripts tiktu tuvināts un ziņojumi tiktu parādīti pārāk ātri.

Kā lietot miega komandu slēdžus

Miega komandai ir tikai daži slēdži.

The -- palīdzēt slēdzis parāda miega komandas palīdzības failu. To pašu var sasniegt, izmantojot komandu man šādi:

vīrietis guļ. 

The -- versija slēdzis parāda sistēmā instalētās miega komandas versiju.

Slēdža --version atgrieztā informācija ir šāda:

  • Versijas numurs
  • Autortiesību informācija
  • Licence
  • Autori

Pauzējiet termināļa komandas ar miega režīmu

Vēl viens labs miega komandas lietojums ir termināļa logā ierakstīto komandu pauze.

Ja vēlaties, varat rakstīt divas komandas pēc kārtas, gaidot, līdz pirmā beigsies, pirms rakstāt otro.

Tomēr ātrāka pieeja ir rakstīt abas komandas vienā rindā, starp katru komandu izmantojot miega komandu:

$ cd /mydirectory/ && miega 3 && ls. 

Kā šī komanda darbojas:

  • The cd /mans direktorijs/ komanda maina direktoriju.
  • The gulēt 3 komanda gaida trīs sekundes, līdz cd komanda tiks pabeigta.
  • The ls komanda izpilda un parāda direktorija saturu.

Tādam vienkāršam piemēram kā šis, miega komanda ietaupa tikai nedaudz laika. Tomēr, ja jums ir garš komandu saraksts, iespēja rakstīt komandas vienā rindā ietaupa laiku.