12 Bash For Loop Examples for Your Linux Shell Scripting (Magyar)

12 Bash For Loop Examples for Your Linux Shell Scripting (Magyar)

kétféle bash for loops elérhető. Az egyik az” in ” kulcsszót használja az értékek listájával, a másik a C programozást, például a szintaxist használja.

Ez a cikk a folyamatos Bash bemutató sorozatunk része.

Ez megmagyarázza mind a bash for loop methods, valamint 12 különböző példát, hogyan kell használni a bash for loop a shell script.
könyvjelző ezt a cikket a jövőben is, mivel ez az egyetlen cikk, amit valaha is kell hivatkozni, hogyan kell használni Bash hurkok példákkal.,

1. módszer: Bash For Loop using “in”and list of values

szintaxis:

for varname in listdo command1 command2 ..done

a fenti szintaxis:

  • mert, in, do and done are keywords
  • ” list ” contains list of values. A lista lehet olyan változó, amely több szóközökkel elválasztott szót tartalmaz. Ha a lista hiányzik a for utasításból, akkor a pozíciós paramétert veszi át a héjba.
  • varname bármely Bash változó neve.

ebben a formában a for utasítás végrehajtja a testbe zárt parancsokat, egyszer a lista minden elemére., Például, ha az értékek listája 5 elemet tartalmaz, akkor a for hurok összesen 5 alkalommal kerül végrehajtásra, egyszer a lista minden elemére. A lista aktuális elemét a “varname” változóban tárolja minden alkalommal a hurokon keresztül. Ez a “varname” feldolgozható a for hurok testében.

2. módszer: Bash For Loop using C like syntax

a for loop második formája hasonló a “C” programozási nyelv for loop-jához, amelynek három kifejezése van (inicializálás, állapot és frissítés).,

for (( expr1; expr2; expr3 ))do command1 command2 ..done

a fenti bash parancsszintax esetén

  • az első iteráció előtt, az expr1 kiértékelésre kerül. Ezt általában a hurok változóinak inicializálására használják.
  • A do és done közötti összes kijelentés többször végrehajtásra kerül, amíg az expr2 értéke nem igaz.
  • a hurok minden iterációja után az expr3 kiértékelésre kerül. Ezt általában egy hurok számláló növelésére használják.

a következő 12 példa azt mutatja, hogyan kell a hurkokat különböző módon bashelni.,

statikus értékek a lista után ” in ” kulcsszó

a következő példában, az értékek listája (Mon, K, sze, cs és P) közvetlenül után a kulcsszó “in” a Bash hurok.

vigyázat: az értékek listáját nem szabad vesszővel elválasztani (Mon, K, sze, Cs, P). A vesszőt az érték részeként kell kezelni. vagyis a “Mon” helyett a “Mon” értéket használja az alábbi példában látható értékként.

vigyázat: az értékek listáját nem szabad kettős idézetben mellékelni. (“H K Sze Cs P”)., Ha csatolja a kettős idézet, akkor kell kezelni, mint egy érték (ahelyett, hogy 5 különböző értékek), amint az az alábbi példában.

$ cat for1-wrong2.shi=1for day in "Mon Tue Wed Thu Fri"do echo "Weekday $((i++)) : $day"done$ ./for1-wrong2.shWeekday 1 : Mon Tue Wed Thu Fri

változó a lista után” in “kulcsszó

ahelyett, hogy az értékeket közvetlenül a for hurok, akkor tárolja az értékeket egy változó, és használja a változó a For hurok után a” in ” kulcsszó, amint az a következő példában.

Vigyázat: legjobb gyakorlatként mindig idéznie kell a bash változókat, amikor azt utalja. Kevés kivétel van e bevált gyakorlati szabály alól. Ez az egyik., Ha dupla idézet a változó ebben a hurok, az értékek listáját kell kezelni, mint egy érték. Sokan esnek ebbe a csapdába. Legyen óvatos, és ne duplázza meg a változót a for hurokban.

nem adja meg a lista; a pozicionális paraméterek

Ha nem adja meg a kulcsszót – “a” követi, hogy bármelyik fenti értékeket a bash for ciklus, akkor használd a pozicionális paraméterek (én.e az érvek, amelyeket át a shell script).

Vigyázat: kérjük, legyen óvatos, ha ezt a módszert használja. Nem szabad a “in” kulcsszót beilleszteni a for hurokba., Ha az “in” kulcsszót értékek nélkül hagyja, akkor nem fogja használni a pozicionális paramétert az alábbiak szerint. Nem fog menni a hurokba. azaz a hurok soha nem lesz végrehajtva, amint az az alábbi példában látható.

$ cat for3-wrong.shi=1for day indo echo "Weekday $((i++)) : $day"done$ ./for3-wrong.sh Mon Tue Wed Thu Fri

Megjegyzés: olvassa el korábbi cikkünket, hogy többet tudjon meg a Bash pozicionális paraméterekről.

Unix parancs kimenet listaértékként a ” in “kulcsszó után

bármely UNIX / Linux parancs kimenetét használhatja a for hurok értékeinek listájaként, ha a parancsot a Back-ticks “‘ – be helyezi az alábbiak szerint.,

hurok fájlok és könyvtárak a For loop

hurok át fájlokat és könyvtárakat egy adott könyvtár, csak cd, hogy a könyvtár, és így * a For hurok az alábbiak szerint.

a következő példa végigjárja az összes fájlt és könyvtárat a saját könyvtárában.

használata * a bash for loop hasonló a fájl globbing, hogy használjuk a linux parancssorban, amikor használjuk ls parancs (és más parancsok).

például a következőkben megjelenik az összes fájl és könyvtár a saját könyvtárában., Ez a koncepció, amelyet a fentiek használnak for5.sh példa.

cd ~ls *

a következő megjeleníti az összes*.conf fájl, amely vagy a, b, vagy, c vagy d az /etc könyvtár alatt kezdődik.

$ ls -1 /etc/*.conf/etc/asound.conf/etc/autofs_ldap_auth.conf/etc/cas.conf/etc/cgconfig.conf/etc/cgrules.conf/etc/dracut.conf

ugyanaz az argumentum, amelyet a fenti ls parancsban használnak, egy bash for loop-ban használható, az alábbi példában látható módon.

kitörni a for hurok

akkor kitörni a For hurok segítségével “break” parancs az alábbiak szerint.,

$ cat for6.shi=1for day in Mon Tue Wed Thu Frido echo "Weekday $((i++)) : $day" if ; then break; fidone$ ./for6.shWeekday 1 : MonWeekday 2 : Tue

folytatás a for loop tetejéről

bizonyos feltételek mellett figyelmen kívül hagyhatja a for loop többi parancsát, majd folytassa a hurkot a felső részből (a lista következő értékéhez), a continue paranccsal az alábbiak szerint.

a következő példa a “(WEEKEND)” – et a Sat and Sun-hoz, a “(weekday)” pedig a többi naphoz adja hozzá.

bash for loop using C program syntax

Ez a példa a bash for loop 2. módszerét használja, amely hasonló a C For loop szintaxishoz., A következő példa generál 5 véletlen számot a Bash C-stílus hurok.

9. Végtelen Bash a hurok

Ha nem adja meg a start, feltétel, és növekmény a bash C-stílus hurok, akkor lesz végtelen hurok. A hurok leállításához nyomja meg a Ctrl-C billentyűt.

$ cat for9.shi=1;for (( ; ; ))do sleep $i echo "Number: $((i++))"done

mint már említettük, nyomja meg a Ctrl-C kitörni ebből bash végtelen hurok például.,

$ ./for9.shNumber: 1Number: 2Number: 3

vessző használata a Bash C-stílusban a

hurokhoz a bash C-stílusú hurokban, az állapotban használt érték növelésén kívül más értéket is növelhet az alábbiak szerint.

az inicializálás szakaszban, valamint a hurok Bash C-stílusának növekményrészében több érték is lehet, ha vesszővel elválasztjuk az alább látható módon.

a következő hurok végrehajtása összesen 5 alkalommal, a változó i. azonban a változó J kezdeni 5, és egyre növekmény 5 minden alkalommal, amikor a hurok lesz végrehajtva.,

$ cat for10.shfor ((i=1, j=10; i <= 5 ; i++, j=j+5))do echo "Number $i: $j"done$ ./for10.shNumber 1: 10Number 2: 15Number 3: 20Number 4: 25Number 5: 30

számtartomány után” a “kulcsszó

akkor hurok segítségével számtartományt a For hurok” a ” segítségével zárójel bővítése.

a következő példa 10-szer hurkol át az 1-től 10-ig terjedő értékek használatával.

$ cat for11.shfor num in {1..10}do echo "Number: $num"done$ ./for11.shNumber: 1Number: 2Number: 3Number: 4Number: 5...

körű számok közötti után “a” kulcsszó

A következő példa keresztül hurkok 5 alkalommal használja az értékek 1-től 10-ig, egy növekedése a 2. azaz 1-gyel kezdődik, és 2-vel növekszik, amíg el nem éri a 10-et.,

$ cat for12.shfor num in {1..10..2}do echo "Number: $num"done$ ./for12.shNumber: 1Number: 3Number: 5Number: 7Number: 9

PS: ne felejtsd el megjelölni ezt a cikket a jövőbeli hivatkozáshoz.

> add meg a megjegyzést

ha tetszett ez a cikk, akkor is tetszik..

  1. 50 Linux sysadmin oktatóanyagok
  2. 50 leggyakrabban használt Linux parancsok (példákkal)
  3. Top 25 legjobb Linux Teljesítményfigyelő és hibakereső eszközök
  4. Anyu, megtaláltam!,l>
  • Awk Introduction – 7 Awk Print Examples
  • Advanced Sed Substitution Examples
  • 8 Essential Vim Editor Navigation Fundamentals
  • 25 Most Frequently Used Linux IPTables Rules Examples
  • Turbocharge PuTTY with 12 Powerful Add-Ons


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük