Programmēšanā vai skriptu veidošanā cilpa ir viens no pamata un spēcīgākajiem jēdzieniem. Cikls veic noteiktus uzdevumus, līdz tiek izpildīti norādītie nosacījumi. Katrai programmēšanas vai skriptu valodai ir dažādi koncepcijas ieviešanas veidi.
Šajā rokasgrāmatā pārbaudiet ligzdoto cilpu bash skriptu izveidē.
Ligzdota cilpa
Cikls pēc definīcijas veic noteiktus uzdevumus, līdz tiek izpildīti nosacījumi. Ko darīt, ja uzdevums ietver cilpas palaišanu? Šis ir ligzdotās cilpas jēdziens. Cilpa cilpā.
Šī ir cilpas pamatstruktūra.
while (nosacījums)# kaut kas
Lūk, kamēr cilpa turpinās veikt uzdevumus, kas deklarēti blokā, kamēr tiek izpildīts nosacījums. Ja cilpa ir ievietota ligzdā, struktūra izskatās šādi.
# galvenā cilpawhile (nosacījums)
# ligzdota cilpa
while (nosacījums)
# kaut kas
Teorētiski ligzdotās cilpas var nonākt bezgalīgā dziļumā. Daudzās situācijās ligzdotās cilpas var būt ideāls risinājums.
Cilpa bash rakstā
Bash ir spēcīga skriptu valoda. Basā ir dažādas cilpu struktūras. Vispopulārākie ir paredzēti, kamēr, un līdz cilpām. Ja jūs jau iepriekš esat iepazinies ar C / C ++ programmēšanu, tad sintakse noteikti izskatīsies diezgan līdzīga.
Par cilpām
Cilpai ir viena no visizplatītākajām un daudzveidīgākajām formu izejām utt. Cilpas struktūra bash skriptu veidošanā. Struktūra arī ļoti atgādina cilpu C / C ++.
Par cilpas bash struktūra ir šāda.
for ((inicializēt; nosacījums; pieaugums)); darīt# kaut kas
izdarīts
Struktūra ir ļoti pašsaprotama. Inicializācijas sadaļa nav obligāta. Tomēr nosacījums un pieaugums ir augstāka prioritāte.
Liksim to lietā. Šeit ir ļoti vienkāršots bash skripts, kas tiek realizēts ciklam.
par ((i = 0; i < 5 ; i++)); doatbalss "sveika pasaule"
izdarīts
Kā cikla nosacījumu ir iespējams izmantot arī sarakstu / diapazonu. Tas ir īpaši noderīgi, ja strādā ar failu sarakstu, skaitļu diapazoniem, masīviem, komandu izvadiem utt. Struktūra izskatās apmēram tā.
vienumam- ; darīt
- Bash bezgalīgā cilpa
- Bash skripta lietotāja ievade
- Bash funkcija atgriež masīvu
# kaut kas
izdarīts
Piemēram, šis skripts piecas reizes izdrukās “sveika pasaule”.
i i 1… 5; darītatbalss "sveika pasaule"
izdarīts
Ko darīt, ja mums jāstrādā ar direktorija saturu? Šajā piemērā skripts izdrukās visus failus direktorijā / usr / bin.
priekš i mapē / usr / bin / *; darītatbalss $ i
izdarīts
Ko mēs darīsim, lai cilpa tiktu ievietota ligzdā? Tas ir tikai viens cilpa iekšā citā. Izmantojot iepriekšējo piemēru, šeit ir ievietota cilpa.
par ((i = 0; i < 3 ; i++)); dopar ((j = 0; j < 2 ; j++)); do
atbalss "sveika pasaule"
izdarīts
izdarīts
Rezultāts būs “sveika pasaule” 6 reizes. Ārējā cilpa darbosies trīs reizes, iekšējā cilpa darbosies divas reizes.
Kaut cilpas
While cilpa ir vēl viena populāra un intuitīva cilpa, kas pieejama bash skriptos. Sintakse izskatās šādi.
kamēr# kaut kas
izdarīts
Šajā piemērā skripts piecas reizes izdrukās “sveika pasaule”.
num = 1kamēr [$ num -le 5]; darīt
atbalss "sveika pasaule"
num = $ (($ num + 1))
izdarīts
Kā tas varētu izskatīties, ja ir ievietota ligzda kamēr cilpa? Šeit ir vienkāršs piemērs.
num_a = 1num_b = 1
kamēr [$ num_a -le 5]; darīt
kamēr [$ num_b -le 5]; darīt
atbalss "sveika pasaule"
num_b = $ (($ num_b + 1))
izdarīts
num_a = $ (($ num_a + 1))
izdarīts
Līdz cilpām
Ja jums ir programmēšanas fons C / C ++, jūs esat pazīstams ar do-while ciklu. Diemžēl basam nav nekā tāda. Tomēr, kamēr cilpa darbojas līdzīgā veidā. Arī sintakse izskatās diezgan vienāda.
līdz [# kaut kas
izdarīts
Atšķirība starp laiku un līdz ciklam ir testa nosacījums. Kamēr testa nosacījums ir patiess, kamēr darbojas cilpa, tā turpinās darboties. Tomēr cilpa “līdz” turpinās darboties tikai tad, ja nosacījums ir nepatiess.
Šeit ir īss piemērs, kamēr cilpa. Tas izdrukās reizināšanas tabulu ar 2.
num_a = 1līdz [$ num_a -gt 10]; darīt
echo $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
izdarīts
Loop break
Noteiktās situācijās, ja ir izpildīti noteikti nosacījumi, pārējās cilpas palaišana kļūst lieka. Cilpas pārtraukumi ir interesanta funkcija, kas ļauj izkļūt no cilpas noteiktā stāvoklī. Tas ir svarīgāk ligzdotajām cilpām, jo jo augstākas cilpas, jo lielāks resursu patēriņš un neefektivitāte.
Šeit sekojošais ciklam tiks pārtraukts, tiklīdz tas būs sasniegts.
par ((i = 1; i<=100;i++)); doatbalss $ i
ja [$ i -eq 10]; pēc tam
pārtraukums
fi
izdarīts
Pārbaudiet, kā pārtraukt cilpu, lai iegūtu padziļinātu skaidrojumu un parādītu cilpu pārtraukumus.
Pēdējās domas
Ligzdota cilpa ir vienkāršs un spēcīgs jēdziens, ko saprast un īstenot. Cerams, ka šī rokasgrāmata spēja aprakstīt un parādīt jēdzienu.
Interesē vairāk bash skriptu ceļvežu? Pārbaudiet šīs rokasgrāmatas.
Laimīgu skaitļošanu!