Looping statements i Shell Scripting: Der er i alt 3 looping-sætninger, der kan bruges i bash-programmering
Indholdsfortegnelse
- `while`-sætning i Shell Script i Linux
- `for`-erklæring i Shell Script i Linux
- `indtil`-sætning i Shell Script i Linux
- Eksempler på Looping Statements
For at ændre strømmen af loop-udsagn, bruges to kommandoer, de er,
- pause
- 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
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
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 8hvis [ $a == 5 ]
derefter
Blive ved
være
ekko Iteration nr. $a
Færdig
Produktion:

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 10indtil [$a -gt 10]
gør# Udskriv værdierne
ekko $aalfabetet nummereret# øge værdien
a=`udtr. $a + 1`
Færdig
Produktion:

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
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.
- Loop krop:
- Sløjfen fortsætter, indtil den behandler alle de værdier, der findes i
COLORS>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
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.
- Loop krop:
- 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 inputlæs -p Indtast dit navn: NAVN
læs -p Er ${NAME} korrekt? KORREKT
Færdig
Produktion:

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.
- Loop krop:
- 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.