BASHi programmeerimine

Pesastatud silmus Bashi skripti näidetes

Pesastatud silmus Bashi skripti näidetes

Programmeerimisel või skriptimisel on silmus üks kõige põhilisemaid ja võimsamaid mõisteid. Silmus täidab teatud ülesandeid, kuni määratud tingimused on täidetud. Igal programmeerimis- või skriptikeelel on kontseptsiooni rakendamiseks erinevad viisid.

Vaadake selles juhendis pesastatud silmust bashi skriptides.

Pesastatud silmus

Silmus täidab definitsiooni kohaselt teatud ülesandeid, kuni tingimused on täidetud. Mis siis, kui ülesanne hõlmab tsükli käivitamist? See on sisestatud silmuse mõiste. Silmus silmuses.

See on silmuse põhistruktuur.

while (tingimus)
# midagi

Siin jätkab while-tsükkel plokis deklareeritud ülesannete täitmist seni, kuni tingimus on täidetud. Pesastatud silmuse korral näeks struktuur välja selline.

# peamine silmus
while (tingimus)
# pesastatud silmus
while (tingimus)
# midagi

Teoreetiliselt võivad pesastatud silmused minna lõpmatuseni. Paljudes olukordades võivad pesastatud silmused olla ideaalne lahendus.

Silmus bashi skriptis

Bash on võimas skriptikeel. Bashis on erinevad silmusstruktuurid. Kõige populaarsemad on mõeldud silmustele, kuni ja kuni. Kui olete C / C ++ programmeerimisega varem tuttav, siis näeb süntaks kindlasti üsna sarnane välja.

Silmuste jaoks

Sest silmus on üks levinumaid ja mitmekülgsemaid vormiväljundeid jne. Tsüklite struktuur bashi skriptimisel. Struktuur sarnaneb silmuse jaoks ka C / C ++ palju.

Silmuse struktuur bashis on järgmine.

for ((lähtestama; tingimus; juurdekasv)); tegema
# midagi
tehtud

Struktuur on väga iseenesestmõistetav. Initsialiseerimine pole kohustuslik. Tingimus ja juurdekasv on siiski prioriteetsemad.

Paneme selle teoks. Siin on väga lihtsustatud bash-skript, mis rakendab loopi jaoks.

jaoks ((i = 0; i < 5 ; i++)); do
kaja "tere maailm"
tehtud

Tsükli tingimusena on võimalik kasutada ka loendit / vahemikku. See on eriti kasulik, kui töötate failide loendi, numbrivahemike, massiivide, käskude väljundite jne abil. Struktuur näeb välja umbes selline.

üksuse jaoks ; tegema
# midagi
tehtud

Näiteks prindib järgmine skript viis korda tere maailma.

i jaoks ajavahemikus 1… 5; tegema
kaja "tere maailm"
tehtud

Mis siis, kui peame töötama kataloogi sisuga? Järgmises näites prindib skript kõik kataloogis / usr / bin olevad failid.

i jaoks / usr / bin / *; tegema
kaja $ i
tehtud

Mida me siis teeme, et silmus oleks pesastatud? See on lihtsalt üks silmus teise sees. Siin on eelmise näite abil sisestatud silmuse jaoks.

for ((i = 0; i < 3 ; i++)); do
jaoks ((j = 0; j < 2 ; j++)); do
kaja "tere maailm"
tehtud
tehtud

Väljundiks on “tere maailm” 6 korda. Välimine silmus kulgeb kolm korda, sisemine silmus kulgeb kaks korda.

Kuigi silmuseid

While-silmus on veel üks populaarne ja intuitiivne silmus, mis on saadaval bashi skriptides. Süntaks näeb välja selline.

samas ; tegema
# midagi
tehtud

Järgmises näites prindib skript viis korda tere maailma.

arv = 1
samal ajal [$ num -le 5]; tegema
kaja "tere maailm"
num = $ (($ num + 1))
tehtud

Kuidas näeks välja pesastatud samal ajal silmus? Siin on lihtne näide.

arv_a = 1
arv_b = 1
samas [$ num_a -le 5]; tegema
samas [$ num_b -le 5]; tegema
kaja "tere maailm"
num_b = $ (($ num_b + 1))
tehtud
num_a = $ (($ num_a + 1))
tehtud

Kuni silmusteni

Kui teil on programmeerimise taust C / C ++ keeles, siis olete tuttav do-while tsükliga. Kahjuks pole bashil midagi sellist. Kuid seni, kuni silmus töötab sarnaselt. Ka süntaks näeb üsna sama välja.

kuni [ ]; tegema
# midagi
tehtud

Katsetingimuseks on hetk ja silmuse vahe. Niikaua kui testitingimus on tõene, töötab mõnda aega silmus. Kuni-silmus töötab aga ainult siis, kui tingimus on vale.

Siin on kiire näide while-silmusest. See prindib korrutustabeli 2.

num_a = 1
kuni [$ num_a -gt 10]; tegema
kaja $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
tehtud

Silmamurd

Teatud olukordades, kui teatud tingimused on täidetud, muutub ülejäänud tsükli käitamine üleliigseks. Loop-katkestused on huvitav funktsioon, mis võimaldab antud tingimusel silmusest välja murda. Pesastatud silmuste jaoks on see olulisem, kuna mida suurem on tsüklid, seda suurem on ressursside tarbimine ja ebaefektiivsus.

Siin peatatakse tsükli alljärgneva täitmine kohe, kui see on tingimuse saavutanud.

jaoks ((i = 1; i<=100;i++)); do
kaja $ i
kui [$ i-ekv 10]; siis
murda
fi
tehtud

Vaadake, kuidas silmus katkestada, et põhjalikult selgitada ja tutvuda silmuse katkestustega.

Lõpumõtted

Pesastatud silmus on lihtne ja võimas mõiste, mida mõista ja rakendada. Loodetavasti suutis see juhend seda kontseptsiooni kirjeldada ja demonstreerida.

Huvitatud rohkematest bash-i skriptimisjuhenditest? Vaadake järgmisi juhendeid.

  • Bash lõpmatu silmus
  • Bash-skripti kasutaja sisend
  • Bashi funktsioon tagastab massiivi

Head arvutamist!

Jäljendage hiireklikke, hõljutades hiirega klõpsutut hiirt Windows 10-s
Hiire või klaviatuuri kasutamine liigses kasutamises vales asendis võib põhjustada palju terviseprobleeme, sealhulgas tüve, karpaalkanali sündroom ja ...
Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...
Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...