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ő hurokwhile (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++)); dovisszhang "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
- Bash végtelen hurok
- Bash script felhasználói bevitel
- Bash függvény visszatérő tömb
# 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álnivisszhang "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álnivisszhang $ 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++)); doa ((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# valami
Kész
A következő példában a szkript ötször kinyomtatja a „hello world” szót.
szám = 1mí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 = 1szá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 [# 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++)); dovisszhang $ 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.
Boldog számítástechnika!