BASH programmēšana

Ligzdota cilpa Bash skriptu piemēros

Ligzdota cilpa Bash skriptu piemēros

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ā cilpa
while (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++)); do
atbalss "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
# kaut kas
izdarīts

Piemēram, šis skripts piecas reizes izdrukās “sveika pasaule”.

i i 1… 5; darīt
atbalss "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īt
atbalss $ 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++)); do
par ((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 ; darīt
# kaut kas
izdarīts

Šajā piemērā skripts piecas reizes izdrukās “sveika pasaule”.

num = 1
kamē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 = 1
num_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 [ ]; darīt
# 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 = 1
lī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++)); do
atbalss $ 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.

  • Bash bezgalīgā cilpa
  • Bash skripta lietotāja ievade
  • Bash funkcija atgriež masīvu

Laimīgu skaitļošanu!

Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...
Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...