A BASH használata hurokhoz



Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

Az egyik legalapvetőbb trükk a bash szkriptek készítésekor magában foglalja a hurok létrehozását, hogy egy bizonyos feladatot többször is automatikusan végrehajtsanak. Végül a hurok elér egy előre meghatározott tesztállapotot, és hirtelen megszűnik a végrehajtása. Az ilyen hurkok tökéletesen működnek a bash-on Linuxon és macOS-on, valamint a Windows 10 belső bash-ján és még a FreeBSD különféle héjain is. Természetesen bármelyik ciklusba beírhatja a kívánt parancsot, és bármikor folytathatja a folyamatot. Bár írunk néhány rendkívül egyszerű hurkot, ezeket a készségeket felhasználhatja bármilyen típusú szkript készítéséhez.



A szkript írásának megkezdésének számos módja van, de ehhez a beszélgetéshez feltételezzük, hogy megnyitott egy parancssort, vagy a Dash termináljának keresésével, a KDE, a MATE, az LX vagy a Whisker menükben rákattintva, vagy a Ctrl, Alt és T egyidejű lenyomásával. Míg szerkesztőként megvitatjuk a vi / vim és a nano témákat, az a kérdés, hogy melyik szerkesztőt használja, meglehetősen személyes kérdés, és bármivel együtt dolgozhat, amellyel jól érzi magát.



1. módszer: Az addig hurok

Talán a bash legalapvetőbb hurkja a till hurok. Addig hajtja végre a parancsokat, amíg a beállított tesztfeltétel valóra nem válik. Feltételezzük, hogy a nano vagy a vi használatával megnyitott egy nem létező, asti.sh nevű fájlt, és készen áll arra, hogy friss szöveget illesszen be abba. Csak készítünk valamit, ami 20-nak számít a terminálon, hogy ez elsőre könnyebb legyen.



Először írja be a következőket:

#! / bin / bash

n = 0



[$ n -gt 20] -ig

csináld

visszhang $ n

((n ++))

Kész

Ha nanot használ, akkor mentse el a Ctrl lenyomásával, majd az O és végül X megnyomásával a kilépéshez. A vi felhasználóinak meg kell nyomniuk a escape-t, majd be kell írniuk: wq a mentéshez és a kilépéshez.

Következő típus chmod + x, amíg Loop parancsra, hogy futtathatóvá tegye, majd írja be ./untilLoop hogy futtassa. Amint fut, a hurok folyamatosan új számokat nyomtat ki a terminálon, amíg az n változó 20-ra nem válik.

Egyébként az első sor megmondja a környezetének, hogy melyik héjat kell betölteni, ha dolgozik ezekkel a szkriptekkel. Egyes programozók csak a #! / Bin / sh használatával javasolják annak biztosítását, hogy a szkript megfeleljen bizonyos POSIX szabványoknak, de ezeknek az egyszerű szkripteknek nem lehet problémája a modern rendszerek túlnyomó többségében.

2. módszer: A hurokhoz

Az A for ciklus megnéz egy adott lista minden elemét, majd végrehajt egy adott parancskészletet a listán. Készítünk egyet, amely kinyomtat néhány operációs rendszer nevet, de ismét szem előtt kell tartani, hogy bármit megtehetne ezzel, ha szeretné.

Írja be vagy nano forLoop vagy mi a hurok parancssorba, és kezdje el beírni ezt a következő parancsfájlt. A vi felhasználóinak ezt megelőzően be kell lépniük a beszúrás módba.

#! / bin / bash

unices = ’GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix’

for unix for $ unices

csináld

echo $ unix

Kész

Mentse el újra a fájlt a Ctrl + O, majd a Ctrl + X metódus használatával a nanóban vagy az Esc majd: wq metódus a vi alatt, mielőtt kiadja a parancsot chmod + x forLoop hogy futtatható legyen. Ha megvan, futtassa be gépeléssel ./forLoop a felszólításra. A for loop arra kényszeríti az echo parancsot, hogy az unices változó minden elemén egymás után dolgozzon. Még egyszer kicserélheti ezt a listát bármely argumentumra, és visszahelyezheti bármely parancsra a hosszú folyamatok automatizálását.

3. módszer: A while hurok

Kezdje el szerkeszteni egy harmadik, a Loop nevű fájlt a nano, vi vagy bármely más szerkesztő használatával. Ha inkább grafikus szövegszerkesztőt szeretne használni, akkor ezt a projektek bármelyikével megteheti, feltéve, hogy feltétlenül a fájlt ugyanabba a könyvtárba helyezi, ahová a parancssor belsejében dolgozik. .

Ebben a fájlban hozzá szeretné adni a sorokat:

#! / bin / bash

n = 0

míg [$ n -le 20]

csináld

visszhang $ n

((n ++))

Kész

Mentse a fájlt ugyanúgy, mint a többit, majd lépjen ki a szövegszerkesztőből. Miután kilépett, adja ki a parancsot chmod + x whileLoop hogy végre tudja hajtani, majd fusson ./ whileLoop hogy futtassa. Ugyanazt a kimenetet fogja látni, mint ami az első metódusból a tillLoop szkriptből származott, mivel 0 és 20 között számít a másodperc töredéke alatt.

Ez kiválóan bizonyítja azt a tényt, hogy többféle módon lehet dolgokat csinálni, amikor ilyen hurokkal dolgozunk. Noha erre technikailag nincs rossz módszer, valószínűleg olyan szkript szerzőkkel találkozol, akik azt állítják, hogy a szkripteket közelebb kell írnod ​​ahhoz, ahogyan a C programozási nyelv csinálja a dolgokat, vagy alternatívaként, mások azt javasolhatják, hogy ezt ne tedd. Őszintén szólva valószínűleg sok helyes módszer létezik a probléma megoldására.

Ha befejezte a gyakorlást, nyugodtan törölje a szkripteket.

3 perc olvasás