U programiranju ili skriptiranju petlja je jedan od najosnovnijih i najsnažnijih koncepata. Petlja obavlja određene zadatke dok se ne ispune navedeni uvjeti. Svaki programski ili skriptni jezik ima različite načine implementacije koncepta.
U ovom vodiču pogledajte ugniježđenu petlju u bash skripti.
Ugnježđena petlja
Petlja, prema definiciji, izvodi određene zadatke dok se ne ispune uvjeti. Što ako zadatak uključuje pokretanje petlje? Ovo je koncept ugniježđene petlje. Petlja unutar petlje.
Ovo je osnovna struktura petlje.
while (uvjet)# nešto
Ovdje će while petlja nastaviti izvršavati zadatke deklarirane unutar bloka sve dok je ispunjen uvjet. U slučaju ugniježđene while petlje, struktura bi izgledala ovako.
# glavna petljawhile (uvjet)
# ugniježđena petlja
while (uvjet)
# nešto
U teoriji ugniježđene petlje mogu ići do beskonačne dubine. U mnogim situacijama ugniježđene petlje mogu biti savršeno rješenje.
Petlja u bash skripti
Bash je moćan skriptni jezik. U bashu postoje različite strukture petlje. Najpopularniji su za petlje, dok i dok. Ako ste već upoznati s programiranjem na C / C ++, tada će sintaksa izgledati prilično slično.
Za petlje
For loop je jedan od najčešćih i najsvestranijih oblika izlaza itd. Struktura petlji u bash skriptiranju. Struktura također puno podsjeća na petlju u C / C ++.
Struktura for petlje u bashu je sljedeća.
for ((inicijalizirati; uvjet; prirast)); čini# nešto
gotovo
Struktura je vrlo razumljiva. Odjeljak inicijalizacije nije obvezan. Međutim, uvjet i priraštaj su veći prioritet.
Krenimo u djelo. Evo vrlo pojednostavljene bash skripte koja implementira for loop.
za ((i = 0; i < 5 ; i++)); doodjek "zdravo svijetu"
gotovo
Također je moguće koristiti popis / raspon kao uvjet petlje. Posebno je korisno ako radite s popisom datoteka, rasponima brojeva, nizovima, izlazima naredbi itd. Struktura izgleda otprilike ovako.
za stavku u- ; čini
- Beskonačna petlja basha
- Unos korisnika bash skripte
- Bash funkcija koja vraća niz
# nešto
gotovo
Na primjer, sljedeća će se skripta pet puta ispisati "hello world".
za i u 1… 5; činiodjek "zdravo svijetu"
gotovo
Što ako trebamo raditi sa sadržajem direktorija? U sljedećem primjeru skripta će ispisati sve datoteke u direktoriju / usr / bin.
za i u / usr / bin / *; činiodjek $ i
gotovo
Sada, što radimo da imamo ugniježđenu petlju for? To je samo jedan za petlju unutar drugog. Evo ugniježđene for petlje koristeći prethodni primjer.
za ((i = 0; i < 3 ; i++)); doza ((j = 0; j < 2 ; j++)); do
odjek "zdravo svijetu"
gotovo
gotovo
Izlaz će biti "zdravo svijetu" 6 puta. Vanjska petlja pokrenut će se tri puta, unutarnja petlja dva puta.
Dok petlje
Petlja while je još jedna popularna i intuitivna petlja dostupna u bash skriptama. Sintaksa izgleda ovako.
dok# nešto
gotovo
U sljedećem primjeru, skripta će pet puta ispisati "hello world".
num = 1dok [$ num -le 5]; čini
odjek "zdravo svijetu"
num = $ (($ num + 1))
gotovo
Kako bi izgledalo imati ugniježđenu while petlju? Evo jednostavnog primjera.
broj_a = 1num_b = 1
dok je [$ num_a -le 5]; čini
dok [$ num_b -le 5]; čini
odjek "zdravo svijetu"
num_b = $ (($ num_b + 1))
gotovo
num_a = $ (($ num_a + 1))
gotovo
Do petlje
Ako imate pozadinu za programiranje na C / C ++, tada vam je poznata petlja rada. Nažalost, bash nema ništa slično. Međutim, sve dok petlja ne djeluje na sličan način. Sintaksa također izgleda prilično isto.
dok [# nešto
gotovo
Razlika između petlje while i dok je petlja uvjet je ispitivanja. Sve dok je test uvjet istinit, while petlja će nastaviti raditi. Petlja till, međutim, nastavit će se izvoditi samo ako je uvjet netačan.
Evo kratkog primjera while petlje. Ispisat će tablicu množenja od 2.
broj_a = 1do [$ num_a -gt 10]; čini
echo $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
gotovo
Prekid petlje
U određenim situacijama, ako su ispunjeni određeni uvjeti, pokretanje ostatka petlje postaje suvišno. Prekidi petlje zanimljiva su značajka koja omogućuje probijanje petlje u zadanim uvjetima. Važnije je za ugniježđene petlje jer što su veće petlje, to je veća potrošnja resursa i neučinkovitost.
Ovdje će se sljedeća petlja prestati izvršavati čim postigne stanje.
za ((i = 1; i<=100;i++)); doodjek $ i
ako [$ i -eq 10]; zatim
pauza
fi
gotovo
Provjerite kako prekinuti petlju while za dubinsko objašnjenje i demonstraciju prekida petlje.
Završne misli
Ugniježđena petlja je jednostavan i moćan koncept za razumijevanje i provedbu. Nadamo se da je ovaj vodič mogao opisati i pokazati koncept.
Zainteresirani za više bash vodiča za skriptiranje? Pogledajte sljedeće vodiče.
Sretno računanje!