Komanda sleep
je korisna alatka koja omogućava pauziranje izvršavanja procesa u Linux okruženju. Iako se čini da privremena neaktivnost ne doprinosi mnogo, ona može biti ključna za efikasno upravljanje skriptama i procesima. Ovaj članak objašnjava kako koristiti sleep
komandu u Bash-u.
Korišćenje komande sleep
je vrlo jednostavno. U terminal ukucajte sleep
, razmak, broj i pritisnite Enter. Na primer:
sleep 5
Kursor će nestati na pet sekundi, a zatim će se ponovo pojaviti. Šta se zapravo desilo? Kada koristite sleep
u komandnoj liniji, Bash obustavlja dalju obradu na određeno vreme koje ste naveli. U navedenom primeru, pauza je trajala pet sekundi.
Vreme pauze se može definisati u danima, satima, minutama, kao i u sekundama. Da biste to uradili, dodajte sufiks d
, h
, m
ili s
na broj. Na primer, za pauzu od jednog dana, četiri sata, sedam minuta i pet sekundi, koristite:
sleep 1d 4h 7m 5s
Sufiks s
(za sekunde) nije obavezan. Ako ne navedete sufiks, sleep
će svaki broj tretirati kao broj sekundi. Na primer, ako želite pauzu od pet minuta i dvadeset sekundi, jedna ispravna komanda bi bila:
sleep 5m 20
Ukoliko zaboravite da navedete sufiks m
za minute, komanda sleep
će prvo pauzirati pet sekundi, a zatim još dvadeset sekundi, što ukupno čini pauzu od 25 sekundi.
Iako mnoge komande zahtevaju da se parametri unose po tačno određenom redosledu, sleep
je prilično fleksibilna. Parametre možete navesti bilo kojim redosledom i sleep
će ih pravilno protumačiti. Takođe je moguće koristiti broj sa decimalnom tačkom kao parametar. Na primer, 0.5h
je validan način da se odredi pauza od pola sata.
Sve sledeće komande (koje su sve „neobičnije“ napisane) će rezultirati pauzom od 10 sekundi:
sleep 10
sleep 5 5s
sleep 1 1 1s 1 1 1s 1 2
sleep 0.16667m
Pauziranje pre izvršenja komande
Komanda sleep
se može koristiti za pravljenje pauze pre izvršavanja druge komande. Na primer, sledeća komanda će pauzirati 15 sekundi, a zatim će se oglasiti zvučni signal:
sleep 15 && echo -en ' 07'
Pauziranje između dve komande
sleep
se takođe može koristiti za pauziranje između dve komande. Sledeća komanda će prikazati datoteke u direktorijumu „Documents“, pauzirati pet sekundi, a zatim će promeniti trenutni direktorijum u kućni direktorijum:
ls -R ~/Documents && sleep 5 && cd ~
Upotreba u skriptama za pauziranje izvršavanja
Komanda sleep
se često koristi u skriptama kako bi se obezbedilo da skripta pauzira izvršavanje na određeno vreme. To se obično radi da bi se nekom procesu dalo dovoljno vremena da se završi pre nego što skripta nastavi sa izvršavanjem. Takođe se može koristiti za kontrolu brzine zahteva koje skripta šalje nekom drugom resursu.
Da bismo ovo ilustrovali, pogledajmo skriptu koja koristi curl
za pristup Google veb servisu. Kada uputite zahtev veb servisu sa ISBN brojem knjige, servis odgovara sa JSON podacima o knjizi. Te podatke možemo analizirati pomoću jq
kako bismo dobili naslov knjige. Da bi se izbeglo preopterećenje veb servisa, skripta pauzira jednu sekundu između svakog zahteva.
Napravite fajl sa sledećim sadržajem i sačuvajte ga kao check_book.sh
:
#!/bin/bash for book in `cat $1` do echo $book":" curl -s https://www.googleapis.com/books/v1/volumes?q=isbn:$book | jq '.items | .[] | .volumeInfo.title' echo "" sleep 1 done echo "All done."
Unesite sledeću komandu da biste postavili dozvole za izvršavanje i učinili skriptu izvršnom:
chmod +x check_book.sh
Skripta zahteva curl
i jq
. Koristite apt-get
da instalirate ove pakete ako koristite Ubuntu ili neku drugu Debian-zasnovanu distribuciju. U drugim Linux distribucijama koristite alatku za upravljanje paketima specifičnu za tu distribuciju.
sudo apt-get install curl
sudo apt-get install jq
Kreirajte tekstualni fajl sa sledećim brojevima i sačuvajte ga kao books.txt
:
9781565921276 9781874416685 9781565921672 9780521431088 9781491941591
Pokrenite skriptu check_book.sh
i unesite fajl books.txt
kao parametar:
./check_book.sh books.txt
Zahtevi se šalju Google veb servisu u intervalima od jedne sekunde. Naslov knjige se pojavljuje ubrzo nakon što se uputi zahtev za svaki ISBN broj.
Ovo je sve o komandi sleep
. Detaljna analiza rada skripte check_book.sh
prevazilazi okvire ovog članka. Skripta je izabrana samo da bi se ilustrovala validna upotreba sleep
komande. Za više informacija o curl
i jq
alatkama, posetite njihove zvanične stranice projekta i onlajn priručnike.