BASH programozás

Beágyazott hurok a Bash szkript példákban

Beágyazott hurok a Bash szkript példákban

A programozásban vagy a szkriptelésben a hurok az egyik legalapvetőbb és legerősebb fogalom. Egy hurok addig hajt végre bizonyos feladatokat, amíg a megadott feltételek nem teljesülnek. Minden programozási vagy szkriptnyelvnek különböző módjai vannak a koncepció megvalósítására.

Ebben az útmutatóban ellenőrizze a beágyazott hurkot a bash szkriptekben.

Beágyazott hurok

Egy hurok értelemszerűen bizonyos feladatokat végez, amíg a feltételek nem teljesülnek. Mi van, ha a feladat egy hurok futtatását tartalmazza? Ez a beágyazott hurok fogalma. Egy hurok egy hurokban.

Ez a hurok alapstruktúrája.

while (feltétel)
# valami

Itt a while ciklus addig hajtja végre a blokkon belül deklarált feladatokat, amíg a feltétel teljesül. Beágyazott while hurok esetén a szerkezet így nézne ki.

# fő hurok
while (feltétel)
# beágyazott hurok
while (feltétel)
# valami

Elméletileg a beágyazott hurkok végtelen mélységbe kerülhetnek. Sok helyzetben a beágyazott hurkok lehetnek a tökéletes megoldások.

Hurok a bash szkriptben

A Bash egy hatékony szkriptnyelv. Különböző hurokszerkezetek vannak a bash-ban. A legnépszerűbbek a, míg, és amíg a ciklusok. Ha korábban ismeri a C / C ++ programozást, akkor a szintaxis mindenképpen meglehetősen hasonló lesz.

Hurkokhoz

A hurok ugyanis az egyik legelterjedtebb és sokoldalúbb formátumú kimenet stb. A hurkok felépítése a bash szkriptekben. A szerkezet szintén nagyon hasonlít a hurokhoz a C / C ++ nyelven.

A bash for ciklusának szerkezete a következő.

for ((inicializálás; feltétel; növekmény)); csinálni
# valami
Kész

A szerkezet nagyon magától értetődő. Az inicializálás szakasz nem kötelező. Azonban a feltétel és a növekmény nagyobb prioritást élvez.

Tegyük működésbe. Itt egy nagyon leegyszerűsített bash szkript, amely megvalósítja a ciklust.

for ((i = 0; i < 5 ; i++)); do
visszhang "szia világ"
Kész

Lehetséges a lista / tartomány használata ciklusfeltételként is. Különösen hasznos, ha a fájlok, számtartományok, tömbök, parancskimenetek stb. A szerkezet valahogy így néz ki.

elemhez ; csinálni
# valami
Kész

Például a következő szkript ötször nyomtatja ki a „hello world” szót.

i-re 1… 5 alatt; csinálni
visszhang "szia világ"
Kész

Mi van, ha egy könyvtár tartalmával kell dolgoznunk? A következő példában a szkript kinyomtatja az összes fájlt a / usr / bin könyvtárban.

i-re a / usr / bin / *; csinálni
visszhang $ i
Kész

Most mit tegyünk, hogy be legyen ágyazva a hurok? Csak egy hurok a másik belsejében. Itt van egy beágyazott ciklus az előző példa alapján.

for ((i = 0; i < 3 ; i++)); do
a ((j = 0; j < 2 ; j++)); do
visszhang "szia világ"
Kész
Kész

A kimenet hatszor lesz „hello world”. A külső hurok háromszor fog futni, a belső hurok kétszer fut.

Miközben hurkok

A while ciklus egy másik népszerű és intuitív hurok, amely elérhető a bash szkriptekben. A szintaxis így néz ki.

míg ; csinálni
# valami
Kész

A következő példában a szkript ötször kinyomtatja a „hello world” szót.

szám = 1
míg [$ num -le 5]; csinálni
visszhang "szia világ"
szám = $ (($ num + 1))
Kész

Hogyan néz ki, ha beágyazott while ciklus van? Itt egy egyszerű példa.

num_a = 1
szám_b = 1
míg [$ num_a -le 5]; csinálni
míg [$ num_b -le 5]; csinálni
visszhang "szia világ"
num_b = $ (($ num_b + 1))
Kész
szám_a = $ (($ szám_a + 1))
Kész

Hurkokig

Ha programozási háttere van a C / C ++ nyelven, akkor ismeri a do-while ciklust. Sajnos a bashnak nincs semmi ilyesmi. Amíg azonban a hurok hasonló módon nem működik. A szintaxis is ugyanúgy néz ki.

amíg [ ]; csinálni
# valami
Kész

A while és a loop közötti különbség a tesztfeltétel. Amíg a tesztfeltétel igaz, egy darab ciklus tovább fog futni. Az ig ciklus azonban csak akkor fut, ha a feltétel hamis.

Itt egy rövid példa a while ciklusra. Ez kinyomtatja a 2 szorzótáblát.

num_a = 1
[$ num_a -gt 10] -ig; csinálni
echo $ (($ num_a * 2))
num_a = $ (($ num_a + 1))
Kész

Hurokszünet

Bizonyos helyzetekben, ha bizonyos feltételek teljesülnek, a hurok többi részének futtatása feleslegessé válik. A hurokszünetek egy érdekes tulajdonság, amely lehetővé teszi a hurokból való kitörést egy adott állapot mellett. Ez sokkal fontosabb a beágyazott hurkok számára, mivel minél magasabbak a hurkok, annál nagyobb az erőforrás-felhasználás és az hatékonyság.

Itt a következő ciklus leállítja a végrehajtást, amint eléri a feltételt.

for ((i = 1; i<=100;i++)); do
visszhang $ i
ha [$ i -eq 10]; azután
szünet
fi
Kész

Nézze meg, hogyan kell megszakítani a hurok alatt, hogy részletes magyarázatot és bemutatást nyújtson a hurok töréséről.

Végső gondolatok

A beágyazott hurok megértése és megvalósítása egyszerű és hatékony fogalom. Remélhetőleg ez az útmutató képes volt leírni és bemutatni a koncepciót.

További bash szkript útmutatók érdekelnek? Nézze meg a következő útmutatókat.

  • Bash végtelen hurok
  • Bash script felhasználói bevitel
  • Bash függvény visszatérő tömb

Boldog számítástechnika!

A top 5 ergonómikus számítógépes egértermék Linuxhoz
Hosszan tartó számítógép-használat okoz-e fájdalmat a csuklóján vagy az ujjain?? Merev ízületek szenvednek, és folyamatosan kezet kell rázniuk? Égő fá...
Az egér és az érintőpad beállításainak módosítása az Xinput használatával Linux alatt
A legtöbb Linux disztribúció alapértelmezés szerint „libinput” könyvtárral szállítja a rendszer bemeneti eseményeit. Feldolgozhatja a Wayland és az X ...
Az X-Mouse Button Control segítségével az egér gombjait másképp alakíthatja át a különböző szoftvereknél
Lehet, hogy szüksége van egy eszközre, amely megváltoztathatja az egér vezérlését minden használt alkalmazással. Ebben az esetben kipróbálhatja az úgy...