logo

Løkkeudsagn | Shell Script

Looping statements i Shell Scripting: Der er i alt 3 looping-sætninger, der kan bruges i bash-programmering

Indholdsfortegnelse



For at ændre strømmen af ​​loop-udsagn, bruges to kommandoer, de er,

  1. pause
  2. Blive ved

Deres beskrivelser og syntaks er som følger:

`while`-sætning i Shell Script i Linux

Her evalueres kommandoen og udføres baseret på den resulterende løkke, hvis kommandoen hæves til falsk, vil løkken blive afsluttet at.



#/bin/bash while  do       done>

Implementering af 'While' Loop in Shell Script.

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim looping.sh>

Du kan erstatte looping.sh med det ønskede navn.

Så gør vi vores script eksekverbart ved at bruge kommandoen `chmod` i Linux.



chmod +x looping.sh>

#/bin/bash

a=0

# Det er mindre end operatoren

#Gentag løkken indtil en mindre end 10

mens [$a -lt 10]
gør
# Udskriv værdierne
ekko $a
# øge værdien
a=`udtr. $a + 1`
Færdig

Produktion:

Mens Loop i Linux

Mens Loop i Linux

Forklaring:

  • #/bin/bash> : Specificerer, at scriptet skal fortolkes ved hjælp af Bash-skallen.
  • a=0> : Initialiserer en variabela>med værdien 0.
  • while [ $a -lt 10 ]> : Starter en while-løkke, der fortsætter så længe som værdiena>er mindre end 10.
  • do> : Markerer begyndelsen af ​​løkkens krop.
  • echo $a> : Udskriver den aktuelle værdi afa>konsollen.
  • a=> udtr $a + 1 : Øger værdien afa>af 1. Denexpr>kommando bruges til aritmetiske udtryk.
  • done> : Markerer slutningen af ​​løkken.

`for`-erklæring i Shell Script i Linux

For-løkken fungerer på lister over emner. Den gentager et sæt kommandoer for hvert punkt på en liste.
Her er var navnet på en variabel, og word1 til wordN er sekvenser af tegn adskilt af mellemrum (ord). Hver gang for-løkken udføres, sættes værdien af ​​variablen var til det næste ord på listen over ord, ord1 til ordN.

Syntaks:

#/bin/bash for in  do       done>

Implementering af 'for' Loop med 'break'-sætning i Shell Script.

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim for.sh>

Du kan erstatte for.sh med det ønskede navn.

Så gør vi vores script eksekverbart ved at bruge kommandoen `chmod` i Linux.

chmod +x for.sh>

#/bin/bash

#Start af for loop

for en i 1 2 3 4 5 6 7 8 9 10
gør

# hvis a er lig med 5, bryd løkken
hvis [ $a == 5 ]
derefter
pause
være

# Udskriv værdien
ekko Iteration nr. $a
Færdig

Produktion:

Bryd erklæringen ind for Loop i linux

Bryd erklæringen ind for Loop i linux

Forklaring:

  • #/bin/bash>: Specificerer, at scriptet skal fortolkes ved hjælp af Bash-skallen.
  • for a in 1 2 3 4 5 6 7 8 9 10>: Starter en for-løkke, der itererer over værdierne 1 til 10, og tildeler hver værdi til variablena>i hver iteration.
  • do>: Markerer begyndelsen af ​​løkkens krop.
  • if [ $a == 5 ]>: Kontrollerer om den aktuelle værdia>er lig med 5.
    • then>: Markerer begyndelsen af ​​den betingede blok, der skal udføres, hvis betingelsen er sand.
      • break>: Forlader sløjfen, hvis betingelsen er sand.
    • fi>: Markerer slutningen af ​​den betingede blok.
  • echo 'Iteration no $a'>: Udskriver en meddelelse, der angiver det aktuelle iterationsnummer.
  • done>: Markerer slutningen af ​​løkken.

Scriptet opsætter en for-løkke, der itererer over værdierne 1 til 10. Under hver iteration tjekker det, om værdiena>er lig med 5. Hvis det er tilfældet, forlades løkken ved hjælp afbreak>udmelding. Ellers udskriver den en meddelelse, der angiver det aktuelle iterationsnummer. Sløjfen fortsætter, indtil den fuldfører alle iterationer, eller indtil den støder på en break-sætning.

Implementering af `for` Loop med `continue`-erklæring i Shell Script.

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim for_continue.sh>

Du kan erstatte for_continue.sh med det ønskede navn.

Så gør vi vores script eksekverbart ved at bruge kommandoen `chmod` i Linux.

chmod +x for_continue.sh>

#/bin/bash

for en i 1 2 3 4 5 6 7 8 9 10
gør

# hvis a = 5 så fortsæt løkken og
# flyt ikke til linje 8

hvis [ $a == 5 ]
derefter
Blive ved
være
ekko Iteration nr. $a
Færdig

Produktion:

fortsæt sætning i for loop i Linux

fortsæt sætning i for loop i Linux

Forklaring:

  • #/bin/bash> : Specificerer, at scriptet skal fortolkes ved hjælp af Bash-skallen.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Starter en for-løkke, der itererer over værdierne 1 til 10, og tildeler hver værdi til variablena>i hver iteration.
  • do> : Markerer begyndelsen af ​​løkkens krop.
  • if [ $a == 5 ]> : Kontrollerer om den aktuelle værdia>er lig med 5.
    • then> : Markerer begyndelsen af ​​den betingede blok, der skal udføres, hvis betingelsen er sand.
      • continue> : Springer resten af ​​løkkens krop over og går til næste iteration, hvis betingelsen er sand.
    • fi> : Markerer slutningen af ​​den betingede blok.
  • echo 'Iteration no $a'> : Udskriver en meddelelse, der angiver det aktuelle iterationsnummer. Denne linje springes over hvisa>er lig med 5 på grund afcontinue>udmelding.
  • done> : Markerer slutningen af ​​løkken.

Scriptet opsætter en for-løkke, der itererer over værdierne 1 til 10. Under hver iteration tjekker det, om værdiena>er lig med 5. Hvis det er, fortsætter løkken til næste iteration uden at udføre de resterende sætninger i løkkens krop. Ellers udskriver den en meddelelse, der angiver det aktuelle iterationsnummer. Sløjfen fortsætter, indtil den fuldfører alle iterationer.

`indtil`-sætning i Shell Script i Linux

Indtil-løkken udføres lige så mange gange, som betingelsen/kommandoen evalueres til falsk. Sløjfen afsluttes, når betingelsen/kommandoen bliver sand.

Syntaks:

#/bin/bash until  do       done>

Implementering af 'indtil' Loop i Shell Scrip

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim until.sh>

Du kan erstatte indtil. sh med det ønskede navn.

Så gør vi vores script eksekverbart ved at bruge kommandoen `chmod` i Linux.

chmod +x until.sh>

#/bin/bash

a=0

# -gt er større end operatoren
#Gentag løkken, indtil a er større end 10

indtil [$a -gt 10]
gør

# Udskriv værdierne
ekko $a

alfabetet nummereret

# øge værdien
a=`udtr. $a + 1`
Færdig

Produktion:

Unitl loop i Linux

Indtil loop i Linux

Forklaring:

  • #/bin/bash> : Specificerer, at scriptet skal fortolkes ved hjælp af Bash-skallen.
  • a=0> : Initialiserer en variabela>med værdien 0.
  • until [ $a -gt 10 ]> : Starter en indtil-løkke, der fortsætter så længe som værdiena>er ikke større end 10.
  • do> : Markerer begyndelsen af ​​løkkens krop.
  • echo $a> : Udskriver den aktuelle værdi afa>konsollen.
  • a=> udtr $a + 1 : Øger værdien afa>af 1. Denexpr>kommando bruges til aritmetiske udtryk.
  • done> : Markerer slutningen af ​​løkken.

Bemærk: Shell scripting er et sprog, der skelner mellem store og små bogstaver, hvilket betyder, at den korrekte syntaks skal følges, mens scripts skrives.

Eksempler på Looping Statements

1. Iteration over farver ved hjælp af en For Loop

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim color.sh>

Du kan erstatte color.sh med det ønskede navn.

Derefter gør vi vores script eksekverbart ved hjælp af kommandoen `chmod` i Linux.

chmod +x color.sh>

#/bin/bash

FARVER=rød grøn blå

# for-løkken fortsætter, indtil den læser alle værdierne fra FARVER

for COLOR i $COLORS
gør
echo COLOR: $COLOR
Færdig

Produktion:

Til indtil i Linux

Til indtil i Linux

Forklaring:

  • Initialisering af farver:
    • COLORS='red green blue'>: Initialiserer en variabel med navnCOLORS>med en mellemrumssepareret liste over farveværdier (rød, grøn og blå).
  • Til loop-iteration:
    • for COLOR in $COLORS>: Starter en for-løkke, der itererer over hver værdi iCOLORS>variabel.
      • Loop krop:
        • echo 'COLOR: $COLOR'>: Udskriver en meddelelse for hver farve, der viser den aktuelle farveværdi.
    • Sløjfen fortsætter, indtil den behandler alle de værdier, der findes iCOLORS>variabel.

Dette eksempel demonstrerer en simpel loop i Bash, der gentager en liste over farver gemt iCOLORS>variabel. Sløjfen udskriver en meddelelse for hver farve, der angiver den aktuelle farve, der behandles. Sløjfen itererer, indtil alle farveværdier er opbrugt.

2. Oprettelse af en uendelig sløjfe med mens sand i Shell Script

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim infinite.sh>

Du kan erstatte infinite.sh med det ønskede navn.

Derefter gør vi vores script eksekverbart ved hjælp af kommandoen `chmod` i Linux.

chmod +x infinite.sh>

#/bin/bash

mens sandt
gør

# Kommando, der skal udføres
# søvn 1 angiver, at den sover i 1 sek
echo Hej, jeg er infinity loop
sove 1
Færdig

Produktion:

uendelig loop i linux

uendelig loop i linux

Forklaring:

Uendelig sløjfestruktur:

  • while true>: Starter en while-løkke, der fortsætter uendeligt som betingelsentrue>er altid sandt.
    • Loop krop:
      • echo 'Hi, I am infinity loop'>: Udskriver en meddelelse, der angiver, at scriptet er i en uendelig løkke.
      • sleep 1>: Pauser udførelsen af ​​løkken i 1 sekund før næste iteration.
  • Sløjfen fortsætter i det uendelige og udfører kommandoerne i sin krop gentagne gange.

Dette eksempel viser oprettelsen af ​​en uendelig løkke ved hjælp af while true-konstruktionen i Bash. Sløjfen udskriver kontinuerligt en meddelelse, der angiver dens status som en uendelig sløjfe og inkluderer en sleep 1-kommando, hvilket forårsager en forsinkelse på et sekund mellem iterationerne. Uendelige sløjfer bruges ofte til processer, der skal køre kontinuerligt, indtil de afbrydes manuelt.

3. Interaktiv navnebekræftelsesløkke

Først opretter vi en fil ved hjælp af en teksteditor i Linux. I dette tilfælde bruger vi `vim`editor.

vim name.sh>

Du kan erstatte name.sh med det ønskede navn.

Derefter gør vi vores script eksekverbart ved hjælp af kommandoen `chmod` i Linux.

chmod +x name.sh>

#/bin/bash

KORREKT=n
mens [ $CORRECT == n ]
gør

# loop afbrydes, når du indtaster y, dvs. når dit navn er korrekt
# -p står for prompt, der beder om input

læs -p Indtast dit navn: NAVN
læs -p Er ${NAME} korrekt? KORREKT
Færdig

Produktion:

Interaktivt script i Linux

Interaktivt script i Linux

Forklaring:

  • Initialisering:
    • CORRECT=n>: Initialiserer en variabel med navnCORRECT>med værdien n. Denne variabel bruges til at styre løkken.
  • Interaktiv sløjfe:
    • while [ '$CORRECT' == 'n' ]>: Starter en while-løkke, der fortsætter så længe værdien afCORRECT>er lig med n.
      • Loop krop:
        • read -p 'Enter your name:' NAME>: Beder brugeren om at indtaste sit navn og gemmer input iNAME>variabel.
        • read -p 'Is ${NAME} correct? ' CORRECT>: Beder brugeren om at bekræfte, om det indtastede navn er korrekt og opdatererCORRECT>variabel i overensstemmelse hermed.
    • Sløjfen fortsætter, indtil brugeren indtaster y (angiver det korrekte navn).

Dette eksempel viser en interaktiv loop, der beder brugeren om at indtaste sit navn og derefter beder om bekræftelse. Sløjfen fortsætter, indtil brugeren bekræfter, at det indtastede navn er korrekt ved at indtaste y. Sløjfen bruger ` read> `>kommando til brugerinput og opdaterer ` CORRECT> `>variabel for at styre sløjfestrømmen.

Konklusion

I denne artikel diskuterede vi looping statements i Bash scripting, coveringwhile>,for>, oguntil>sløjfer. Det introducerer brugen afbreak>ogcontinue>sætninger for at ændre sløjfeadfærd. Praktiske eksempler illustrerer implementeringen af ​​loops, herunder iteration over farveværdier, oprettelse af uendelige loops og opbygning af en interaktiv loop til brugerinputvalidering. Guiden tilbyder en kortfattet, men informativ ressource til at forstå og bruge looping-konstruktioner i Bash-scripting.