logo

Looping uttalelser | Shell Script

Looping statements i Shell Scripting: Det er totalt 3 looping-setninger som kan brukes i bash-programmering

Innholdsfortegnelse



For å endre flyten av loop-setninger, brukes to kommandoer de er,

  1. gå i stykker
  2. Fortsette

Deres beskrivelser og syntaks er som følger:

`while`-setning i Shell Script i Linux

Her blir kommandoen evaluert og basert på den resulterende sløyfen vil den utføres, hvis kommandoen heves til usann, vil løkken bli avsluttet at.



#/bin/bash while  do       done>

Implementering av 'While' Loop in Shell Script.

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim looping.sh>

Du kan erstatte looping.sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.



chmod +x looping.sh>

#/bin/bash

a=0

# Det er mindre enn operatoren

#Iterer løkken til en mindre enn 10

mens [ $a -lt 10 ]
gjøre
# Skriv ut verdiene
ekko $a
# øke verdien
a=`uttr $a + 1`
ferdig

Produksjon:

Mens Loop i Linux

Mens Loop i Linux

Forklaring:

  • #/bin/bash> : Spesifiserer at skriptet skal tolkes med Bash-skallet.
  • a=0> : Initialiserer en variabela>med verdien 0.
  • while [ $a -lt 10 ]> : Starter en while-løkke som fortsetter så lenge som verdiena>er mindre enn 10.
  • do> : Markerer begynnelsen av løkkens kropp.
  • echo $a> : Skriver ut gjeldende verdi ava>konsollen.
  • a=> uttr $a + 1 : Øker verdien ava>av 1. Denexpr>kommandoen brukes til aritmetiske uttrykk.
  • done> : Markerer slutten av løkken.

`for`-setning i Shell Script i Linux

For-løkken opererer på lister over elementer. Den gjentar et sett med kommandoer for hvert element i en liste.
Her er var navnet på en variabel og ord1 til ordN er sekvenser av tegn atskilt med mellomrom (ord). Hver gang for-løkken kjøres, settes verdien til variabelen var til neste ord i listen over ord, ord1 til ordN.

Syntaks:

#/bin/bash for in  do       done>

Implementering av 'for' Loop med 'break'-setning i Shell Script.

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim for.sh>

Du kan erstatte for.sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.

chmod +x for.sh>

#/bin/bash

#Start av for loop

for en i 1 2 3 4 5 6 7 8 9 10
gjøre

# hvis a er lik 5, bryt sløyfen
hvis [ $a == 5 ]
deretter
gå i stykker
være

# Skriv ut verdien
ekko Iterasjon nr $a
ferdig

Produksjon:

Break statement for Loop in linux

Break statement for Loop in linux

Forklaring:

  • #/bin/bash>: Spesifiserer at skriptet skal tolkes med Bash-skallet.
  • for a in 1 2 3 4 5 6 7 8 9 10>: Starter en for-løkke som itererer over verdiene 1 til 10, og tildeler hver verdi til variabelena>i hver iterasjon.
  • do>: Markerer begynnelsen av løkkens kropp.
  • if [ $a == 5 ]>: Sjekker om gjeldende verdia>er lik 5.
    • then>: Markerer begynnelsen av den betingede blokken som skal utføres hvis betingelsen er sann.
      • break>: Går ut av loopen hvis betingelsen er sann.
    • fi>: Markerer slutten på den betingede blokken.
  • echo 'Iteration no $a'>: Skriver ut en melding som angir gjeldende iterasjonsnummer.
  • done>: Markerer slutten av løkken.

Skriptet setter opp en for-løkke som itererer over verdiene 1 til 10. Under hver iterasjon sjekker det om verdiena>er lik 5. Hvis det er det, avsluttes løkken ved å brukebreak>uttalelse. Ellers skriver den ut en melding som angir gjeldende iterasjonsnummer. Løkken fortsetter til den fullfører alle iterasjoner eller til den støter på en break-setning.

Implementering av `for` Loop med `continue`-setning i Shell Script.

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim for_continue.sh>

Du kan erstatte for_continue.sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.

chmod +x for_continue.sh>

#/bin/bash

for en i 1 2 3 4 5 6 7 8 9 10
gjøre

# hvis a = 5, fortsett sløyfen og
# ikke flytt til linje 8

hvis [ $a == 5 ]
deretter
Fortsette
være
ekko Iterasjon nr $a
ferdig

Produksjon:

fortsett uttalelse i for loop i Linux

fortsett uttalelse i for loop i Linux

Forklaring:

  • #/bin/bash> : Spesifiserer at skriptet skal tolkes med Bash-skallet.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Starter en for-løkke som itererer over verdiene 1 til 10, og tildeler hver verdi til variabelena>i hver iterasjon.
  • do> : Markerer begynnelsen av løkkens kropp.
  • if [ $a == 5 ]> : Sjekker om gjeldende verdia>er lik 5.
    • then> : Markerer begynnelsen av den betingede blokken som skal utføres hvis betingelsen er sann.
      • continue> : Hopper over resten av løkkens kropp og går til neste iterasjon hvis betingelsen er sann.
    • fi> : Markerer slutten av den betingede blokken.
  • echo 'Iteration no $a'> : Skriver ut en melding som angir gjeldende iterasjonsnummer. Denne linjen hoppes over hvisa>er lik 5 på grunn avcontinue>uttalelse.
  • done> : Markerer slutten av løkken.

Skriptet setter opp en for-løkke som itererer over verdiene 1 til 10. Under hver iterasjon sjekker det om verdiena>er lik 5. Hvis det er det, fortsetter løkken til neste iterasjon uten å utføre de resterende setningene i løkkens kropp. Ellers skriver den ut en melding som angir gjeldende iterasjonsnummer. Løkken fortsetter til den fullfører alle iterasjoner.

`inntil`-setning i Shell Script i Linux

Inntil-løkken utføres så mange ganger som betingelsen/kommandoen evalueres til falsk. Sløyfen avsluttes når betingelsen/kommandoen blir sann.

Syntaks:

#/bin/bash until  do       done>

Implementering av 'til' Loop i Shell Scrip

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim until.sh>

Du kan erstatte frem til. sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.

chmod +x until.sh>

#/bin/bash

a=0

# -gt er større enn operatoren
#Iterer løkken til a er større enn 10

til [$a -gt 10]
gjøre

# Skriv ut verdiene
ekko $a

alfabetet nummerert

# øke verdien
a=`uttr $a + 1`
ferdig

Produksjon:

Unitl loop i Linux

Inntil loop i Linux

Forklaring:

  • #/bin/bash> : Spesifiserer at skriptet skal tolkes med Bash-skallet.
  • a=0> : Initialiserer en variabela>med verdien 0.
  • until [ $a -gt 10 ]> : Starter en inntil-løkke som fortsetter så lenge som verdiena>er ikke større enn 10.
  • do> : Markerer begynnelsen av løkkens kropp.
  • echo $a> : Skriver ut gjeldende verdi ava>konsollen.
  • a=> uttr $a + 1 : Øker verdien ava>av 1. Denexpr>kommandoen brukes til aritmetiske uttrykk.
  • done> : Markerer slutten av løkken.

Merk: Shell-skripting er et språk som skiller mellom store og små bokstaver, noe som betyr at riktig syntaks må følges mens du skriver skriptene.

Eksempler på Looping Statements

1. Iterering over farger ved hjelp av en For-løkke

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim color.sh>

Du kan erstatte color.sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.

chmod +x color.sh>

#/bin/bash

FARGER=rød grønn blå

# for-løkken fortsetter til den leser alle verdiene fra FARGER

for COLOR i $COLORS
gjøre
echo COLOR: $COLOR
ferdig

Produksjon:

For inntil i Linux

For inntil i Linux

Forklaring:

  • Initialisering av farger:
    • COLORS='red green blue'>: Initialiserer en variabel med navnCOLORS>med en mellomromseparert liste over fargeverdier (rød, grønn og blå).
  • For loop-iterasjon:
    • for COLOR in $COLORS>: Starter en for-løkke som itererer over hver verdi iCOLORS>variabel.
      • Løkkekropp:
        • echo 'COLOR: $COLOR'>: Skriver ut en melding for hver farge som viser gjeldende fargeverdi.
    • Løkken fortsetter til den behandler alle verdiene som finnes iCOLORS>variabel.

Dette eksemplet demonstrerer en enkel for loop i Bash, og itererer over en liste over farger som er lagret iCOLORS>variabel. Sløyfen skriver ut en melding for hver farge, som indikerer den gjeldende fargen som behandles. Løkken itererer til alle fargeverdier er oppbrukt.

2. Opprette en uendelig sløyfe med mens sant i Shell Script

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim infinite.sh>

Du kan erstatte infinite.sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.

chmod +x infinite.sh>

#/bin/bash

mens det er sant
gjøre

# Kommando som skal utføres
# søvn 1 indikerer at den sover i 1 sek
echo Hei, jeg er infinity loop
sove 1
ferdig

Produksjon:

uendelig loop i linux

uendelig loop i linux

Forklaring:

Uendelig sløyfestruktur:

  • while true>: Starter en while-løkke som fortsetter i det uendelige som betingelsentrue>er alltid sant.
    • Løkkekropp:
      • echo 'Hi, I am infinity loop'>: Skriver ut en melding som indikerer at skriptet er i en uendelig sløyfe.
      • sleep 1>: Pauser utførelsen av loopen i 1 sekund før neste iterasjon.
  • Sløyfen fortsetter på ubestemt tid, og utfører kommandoene i kroppen gjentatte ganger.

Dette eksemplet viser frem etableringen av en uendelig løkke ved å bruke while true-konstruksjonen i Bash. Sløyfen skriver kontinuerlig ut en melding som indikerer statusen som en uendelig sløyfe og inkluderer en dvale 1-kommando, noe som forårsaker en forsinkelse på ett sekund mellom iterasjonene. Uendelige sløyfer brukes ofte til prosesser som må kjøres kontinuerlig til de blir manuelt avbrutt.

3. Interaktiv navnebekreftelsesløkke

Først lager vi en fil ved hjelp av et tekstredigeringsprogram i Linux. I dette tilfellet bruker vi `vim`editor.

vim name.sh>

Du kan erstatte name.sh med ønsket navn.

Deretter gjør vi skriptet vårt kjørbart ved å bruke `chmod`-kommandoen i Linux.

chmod +x name.sh>

#/bin/bash

RIKTIG=n
mens [ $CORRECT == n ]
gjøre

# loop avbrytes når du skriver inn y, dvs. når navnet ditt er riktig
# -p står for spørsmål som ber om inndata

les -p Skriv inn navnet ditt: NAVN
les -p Er ${NAME} riktig? RIKTIG
ferdig

Produksjon:

Interaktivt skript i Linux

Interaktivt skript i Linux

Forklaring:

  • Initialisering:
    • CORRECT=n>: Initialiserer en variabel med navnCORRECT>med verdien n. Denne variabelen brukes til å kontrollere loopen.
  • Interaktiv sløyfe:
    • while [ '$CORRECT' == 'n' ]>: Starter en while-løkke som fortsetter så lenge verdien avCORRECT>er lik n.
      • Løkkekropp:
        • read -p 'Enter your name:' NAME>: Ber brukeren om å skrive inn navnet sitt og lagrer inndataene iNAME>variabel.
        • read -p 'Is ${NAME} correct? ' CORRECT>: Ber brukeren bekrefte om det angitte navnet er riktig og oppdatererCORRECT>variabel tilsvarende.
    • Løkken fortsetter til brukeren skriver inn y (som indikerer riktig navn).

Dette eksemplet viser en interaktiv loop som ber brukeren om å skrive inn navnet sitt og deretter ber om bekreftelse. Sløyfen fortsetter til brukeren bekrefter at det angitte navnet er riktig ved å skrive inn y. Sløyfen bruker ` read> `>kommando for brukerinndata og oppdaterer ` CORRECT> `>variabel for å kontrollere sløyfestrømmen.

Konklusjon

I denne artikkelen diskuterte vi looping statements i Bash scripting, coveringwhile>,for>, oguntil>løkker. Den introduserer bruken avbreak>ogcontinue>uttalelser for å endre løkkeoppførsel. Praktiske eksempler illustrerer implementeringen av looper, inkludert iterasjon over fargeverdier, opprettelse av uendelige looper og bygging av en interaktiv loop for validering av brukerinndata. Veiledningen tilbyr en kortfattet, men likevel informativ ressurs for å forstå og bruke looping-konstruksjoner i Bash-skripting.