12 Bash-For-Løkke Eksempler for Linux Shell Scripting

12 Bash-For-Løkke Eksempler for Linux Shell Scripting

Det er to typer bash for looper tilgjengelig. En ved å bruke «i» keyword med liste over verdier, en annen ved hjelp av C-programmering som syntaks.

Denne artikkelen er en del av vår pågående bash tutorial-serien.

Dette forklarer både av bash-for-løkke metoder, og gir 12 ulike eksempler på hvordan du bruker bash-for-løkke i shell-skript.
Bokmerke denne artikkelen for fremtidig referanse, da dette er den eneste artikkelen du noensinne ville trenge å se på hvordan du bruker bash for looper med eksempler.,

Metode 1: Bash-For-Løkke ved å bruke «i» og liste over verdier

Syntaks:

for varname in listdo command1 command2 ..done

I over syntaks:

  • for, i, gjør og har gjort er nøkkelord
  • «liste» inneholder en liste over verdier. Listen kan være en variabel som inneholder flere ord adskilt med mellomrom. Hvis listen er mangler i for-setningen, så det tar posisjonelle parameteren som ble vedtatt i skallet.
  • varname er alle Bash-variabelnavn.

I denne formen for uttalelse utfører kommandoer innelukket i en kropp, en gang for hvert element i listen., For eksempel, hvis verdiene inneholder 5 elementer, for-løkke vil bli utført totalt 5 ganger, én gang for hvert element i listen. Gjeldende element fra listen, vil bli lagret i en variabel «varname» hver gang gjennom løkken. Denne «varname» kan bli behandlet i kroppen av for-løkke.

Metode 2: Bash-For-Løkke ved hjelp av C som syntaks

Den andre form av for-løkke er lik den for-løkke i «C» programmeringsspråk, som har tre uttrykk (initialisering, tilstand og updation).,

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

I over bash for kommandosyntaksen

  • Før den første iterasjon, expr1 er evaluert. Dette er vanligvis brukt til å initialisere variabler for-løkke.
  • Alle utsagnene mellom do og gjort, er utført gjentatte ganger til verdien av expr2 er SANT.
  • Etter hver iterasjon av loopen, expr3 er evaluert. Dette brukes vanligvis for å øke en løkke teller.

følgende 12 eksempler viser hvordan bash for sløyfer i forskjellige måter.,

Statiske verdier for listen etter «i» søkeord

I eksempelet nedenfor er listen over verdier (Man, Tir, Ons, Tors og Fre) er direkte gitt etter søkeordet «i» i bash-for-løkke.

merk: listen over verdier ikke bør være atskilt med komma (Man, Tir, Ons, Tor, Fre). Kommaet vil bli behandlet som en del av verdien. jeg har.e i Stedet for «Man», det vil bruke «Man» som verdi, som vist i eksempelet nedenfor.

merk: listen over verdier bør ikke stå i doble anførselstegn. («Mon Tue Wed Thu Fri»)., Hvis du setter i doble anførselstegn, vil den bli behandlet som en enkelt verdi (i stedet for 5 forskjellige verdier), 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-listen etter «i» søkeord

i Stedet for å gi verdiene direkte i for-løkke, kan du lagre verdier i en variabel, og bruke variabelen i for-løkke etter «i» søkeord, som vist i følgende eksempel.

Advarsel: Som en beste praksis, bør du alltid sitat bash variabler når du refererer det. Det er noen unntak til denne best-praksis-regel. Dette er en av dem., Hvis du dobbeltklikker sitat variabelen i denne for-løkke, verdiene vil bli behandlet som enkelt verdi. Mange mennesker faller i denne fellen. Vær forsiktig og ikke dobbel sitat variabelen i for-løkke.

ikke angi listen; få det fra stedsbestemt parametere

Hvis du ikke angi søkeordet «i», etterfulgt av en liste over verdier i bash-for-løkke, vil den bruke den posisjonelle parametre (som jeg.e argumentene som sendes til shell-script).

Advarsel: Vær forsiktig hvis du bruker denne metoden. Du bør ikke inkluderer søkeordet «i» i for-løkke., Hvis du lar søkeordet «i», uten noen verdier, det vil ikke bruke stedsbestemt parameter som vist nedenfor. Det vil ikke gå inne i loopen. jeg har.e for-løkke vil aldri få utføres 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

Merk: Se vår tidligere artikkel for å forstå mer om bash stedsbestemt parametere.

Unix-kommando ut som liste verdier etter «i» søkeord

Du kan bruke resultatet av en UNIX / Linux-kommando som liste av verdier til for-løkke ved å kapsle inn kommandoen i back-flått ` ` som vist nedenfor.,

bla gjennom filer og mapper i en for-løkke

for Å bla gjennom filer og kataloger under en bestemt katalog, bare cd-en til som katalog, og gi * i for-løkke, som vist nedenfor.

følgende eksempel vil bla gjennom alle filer og kataloger under hjemmekatalogen.

Bruk av * i bash-for-løkke er lik filen globbing som vi bruker i linux command line når vi bruker ls-kommandoen (og andre kommandoer).

For eksempel, følgende vil vise alle filer og kataloger under hjemmekatalogen., Dette er det begrepet som er brukt i over for5.sh eksempel.

cd ~ls *

følgende vil vise alle *.conf-fil som begynner med enten a, b eller c eller d under /etc-katalogen.

$ 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 argumentet som brukes i ls-kommandoen ovenfor, kan brukes i et bash-for-løkke, som vist i eksemplet nedenfor.

Bryte ut av for-løkke

Du kan bryte ut av en for-løkke ved hjelp av ‘bryte’ – kommandoen 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

Fortsett fra toppen av for-løkke

Under visse betingelser, kan du ignorere resten av kommandoene i for-løkke og fortsette løkken fra toppen igjen (for de neste verdi i listen), fortsette å bruke kommandoen som vist nedenfor.

følgende eksempel legger til «(HELG)» å Lør og Søn, og «(hverdager)» til resten av dagene.

Bash-for-løkke ved hjelp av C-program syntaks

Dette eksemplet bruker den 2. metode for bash-for-løkke, som er lik C for-løkke syntaks., Følgende eksempel genererer 5 tilfeldige tall ved hjelp av bash-C-stil for-løkke.

9. Uendelig Bash-for-løkke

Når du ikke gi start, betingelse, og tilvekst i bash-C-stil for-løkke, vil det bli uendelig løkke. Du må trykke Ctrl-C for å avslutte loopen.

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

Som vi sa ovenfor, trykker du Ctrl-C for å bryte ut av denne bash uendelig for-løkke eksempel.,

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

Bruke komma i bash-C-stil for-løkke

I bash-c-stil loop, bortsett fra økning verdien som er brukt i den tilstand, kan du også tilvekst noen annen verdi som vist nedenfor.

I initialize-delen, og økningen delen av bash-C-stil for-løkke, du kan ha flere verdier ved å skille med komma, som vist nedenfor.

følgende for-løkke er utført totalt 5 ganger, ved hjelp av variabelen jeg. Men variabel j start med 5, og komme øker med 5 hver gang loopen blir utført.,

$ 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

Spekter av tall etter «i» søkeord

Du kan sløyfe gjennom å bruke rekkevidde av tall i for-løkke «i» bruke brace expansion.

følgende eksempel looper gjennom 10 ganger ved å bruke verdiene 1 til 10.

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

Rekkevidde av tall med intervaller etter «i» søkeord

følgende eksempel looper gjennom 5 ganger med verdiene 1 til 10, med en økning på 2. jeg har.e Det starter med 1, og holder økes med 2, til den når 10.,

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

PS: ikke glem å bokmerke denne artikkelen for fremtidig referanse.

> Legg til din kommentar

Hvis du likte denne artikkelen, du kan også liker..

  1. 50 Linux-Sysadmin-Tutorials
  2. 50 Mest Brukte Linux-Kommandoer (Med Eksempler)
  3. Topp 25 Beste Linux-Performance Overvåkning og Feilsøking Verktøy
  4. Mamma, jeg fant 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


Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *