12 Bash For Loop eksempler til din Linu.Shell Scripting

12 Bash For Loop eksempler til din Linu.Shell Scripting

der er to typer bash for loops tilgængelige. En ved hjælp af” in ” søgeord med liste over værdier, en anden ved hjælp af C programmering som syntaks.

Denne artikel er en del af vores igangværende bash tutorial serie.dette forklarer begge bash for loop-metoder og giver 12 forskellige eksempler på, hvordan du bruger bash for loop i dine shell-scripts.bogmærke denne artikel til fremtidig reference, da dette er den eneste artikel, du nogensinde har brug for at henvise til, hvordan du bruger bash til sløjfer med eksempler.,

Metode 1: Bash-For-Løkke brug af “i”, og listen over værdier

Syntax:

for varname in listdo command1 command2 ..done

I ovenstående syntaks:

  • til, hvis i gør og har gjort er nøgleord
  • “liste”, indeholder en liste af værdier. Listen kan være en variabel, der indeholder flere ord adskilt af mellemrum. Hvis listen mangler i for-erklæringen, tager den den positionsparameter, der blev sendt ind i skallen.varname er ethvert Bash-variabelnavn.

i denne form udfører for-sætningen de kommandoer, der er vedlagt i en krop, en gang for hvert element på listen., For eksempel, hvis listen over værdier indeholder 5 elementer, udføres for-løkken i alt 5 gange, en gang for hvert element på listen. Det aktuelle element fra listen gemmes i en variabel “varname” hver gang gennem løkken. Denne” varname ” kan behandles i kroppen af for loop.

Metode 2: Bash-For-Løkken bruger C-lignende syntaks

Den anden form for for-løkken er magen til den for-løkke i “C” programmeringssprog, som har tre udtryk (initialisering, tilstand og updation).,

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

I ovenstående bash for kommando syntaks,

  • Før den første iteration, expr1 er evalueret. Dette bruges normalt til at initialisere variabler for sløjfen.
  • alle udsagn mellem do og done udføres gentagne gange, indtil værdien af e .pr2 er sand.
  • efter hver iteration af sløjfen evalueres e exppr3. Dette bruges normalt til at forøge en loop tæller.

de følgende 12 eksempler viser, hvordan man bash for sløjfer på forskellige måder.,

statiske værdier for listen efter “in” nøgleord

i det følgende eksempel gives listen over værdier (Mon, Tue, ons, Thu og FRE) direkte efter nøgleordet “in” i bash for loop.

forsigtig: listen over værdier bør ikke adskilles med komma (man, tir, ons, tor, fre). Kommaet vil blive behandlet som en del af værdien. dvs. i stedet for “Mon”, vil den bruge” Mon ” som værdi som vist i eksemplet nedenfor.

forsigtig: listen over værdier bør ikke være vedlagt i et dobbelt citat. (“Man Tir Ons Tor Fre”)., Hvis du vedlægger dobbelt citat, vil det blive behandlet som en enkelt værdi (i stedet for 5 forskellige værdier), som vist i eksemplet nedenfor.

$ 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

Variabel til listen efter “i” søgeord

i Stedet for at give de værdier direkte i for-løkken, kan du gemme værdier i en variabel, og bruge variablen i for-løkken efter “i” søgeord, som vist i følgende eksempel.advarsel: som en god praksis skal du altid citere bash-variablerne, når du henviser det. Der er få undtagelser fra denne regel om bedste praksis. Dette er en af dem., Hvis du dobbelt citat variablen i denne For loop, listen over værdier vil blive behandlet som enkelt værdi. Mange mennesker falder i denne fælde. Vær forsigtig og ikke fordoble citere din variabel i for loop.

angiv ikke listen; Hent den fra positionsparametrene

Hvis du ikke angiver nøgleordet “in” efterfulgt af en liste over værdier i bash for loop, vil den bruge positionsparametrene (dvs.de argumenter, der overføres til shell-scriptet).

forsigtig: vær forsigtig, hvis du bruger denne metode. Du skal ikke medtage nøgleordet “in” i for-løkken., Hvis du forlader søgeordet” in ” uden nogen værdier, vil det ikke bruge positionsparameteren som vist nedenfor. Det går ikke ind i løkken. dvs. For loop vil aldrig blive henrettet som vist i eksemplet nedenfor.

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

Bemærk: Se vores tidligere artikel for at forstå mere om bash positionsparametre.

Uni.-kommandoudgang som listeværdier efter “in” – nøgleord

Du kan bruge output fra enhver UNI. / Linu. – kommando som liste over værdier til for-løkken ved at omslutte kommandoen i back-ticks ` ` som vist nedenfor.,

Loop gennem filer og mapper, i en for-løkke

til At sløjfe gennem filer og mapper under en bestemt mappe, skal du blot cd ‘ en til denne mappe, og give * i for-løkken, som vist nedenfor.

følgende eksempel vil gennemløbe alle filer og mapper under din hjemmemappe.

brug af * i bash for loop ligner filen globbing, som vi bruger i Linu. – kommandolinjen, når vi bruger ls-kommando (og andre kommandoer).

for eksempel viser følgende alle filer og mapper under din hjemmemappe., Dette er det koncept, der bruges i ovenstående for5.sh eksempel.

cd ~ls *

Følgende viser alle *.conf fil, der begynder med enten A, B, eller, c eller D under /etc mappe.

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

det samme argument, der bruges i kommandoen ls ovenfor, kan bruges i en bash for loop, som vist i eksemplet nedenfor.

Break out of the For loop

Du kan bryde ud af en for loop ved hjælp af ‘break’ kommando som vist nedenfor.,

$ 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

Fortsat fra toppen af for-løkken

Under visse betingelser, kan du ignorere resten af kommandoerne i den for-løkke, og fortsætter løkken fra toppen igen (for den næste værdi i listen), ved hjælp af den fortsat kommando som vist nedenfor.

følgende eksempel tilføjer “(WEEKENDEEKEND)” til lør og sol, og “(ugedag)” til resten af dagene.

Bash for loop ved hjælp af C-programsynta.

dette eksempel bruger den 2. metode til bash for loop, som ligner C For loop-syntaks., Følgende eksempel genererer 5 tilfældige tal ved hjælp af bash C-style for loop.

9. Uendelig Bash for loop

Når du ikke angiver start, tilstand og stigning i bash C-stil for loop, bliver det uendelig loop. Du skal trykke på Ctrl-C for at stoppe sløjfen.

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

som vi sagde ovenfor, skal du trykke på Ctrl-C for at bryde ud af denne bash uendelig for loop eksempel.,

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

brug af komma i bash C-style for loop

i bash c-style loop, bortset fra stigning den værdi, der bruges i tilstanden, kan du også forøge en anden værdi som vist nedenfor.

i Initialiser sektionen og tilvækstsektionen i bash C-style For loop kan du have flere værdier ved at adskille med komma som vist nedenfor.

følgende for loop udføres i alt 5 gange ved hjælp af variablen i. men variablen j starter med 5 og får stigning med 5 hver gang sløjfen udføres.,

antal tal efter “in” nøgleord

Du kan gennemløbe ved hjælp af række tal i for-Løkken “in” ved hjælp af brace-udvidelse.

følgende eksempel løber gennem 10 gange ved hjælp af værdierne 1 til 10.

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

række tal med trin Efter “in” nøgleord

følgende eksempel løber gennem 5 gange ved hjælp af værdierne 1 til 10, med et trin på 2. dvs. det starter med 1, og fortsætter med at øges med 2, indtil det når 10.,

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

PS: glem ikke at bogmærke denne artikel til din fremtidige reference.

> Tilføj din kommentar

Hvis du har nydt denne artikel, kan du også lide..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Mest Brugte Linux-Kommandoer (Med Eksempler)
  3. Top 25 Best Linux Overvågning af Ydeevne og Debugging Værktøjer
  4. Mor, jeg har fundet det!,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


Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *