Looping-instructies | Shell-script

Looping-instructies | Shell-script

Looping-instructies in Shell-scripting: Er zijn in totaal 3 looping-instructies die kunnen worden gebruikt bij bash-programmering

Inhoudsopgave

Om de stroom van lusinstructies te wijzigen, worden twee opdrachten gebruikt:

  1. pauze
  2. doorgaan

Hun beschrijvingen en syntaxis zijn als volgt:

`while`-instructie in Shell Script in Linux

Hier wordt het commando geëvalueerd en op basis van de resulterende lus uitgevoerd. Als het commando naar false wordt verhoogd, wordt de lus beëindigd Dat.

#/bin/bash while  do       done 

Implementatie van `While` Loop in Shell-script.

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim looping.sh 

U kunt looping.sh vervangen door de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x looping.sh 

#/bin/bash

een=0

# Het is minder dan operator

#Herhaal de lus tot minder dan 10

terwijl [ $a -lt 10 ]
Doen
# Druk de waarden af
echo $a
# verhoog de waarde
a=`expr$a+1`
klaar

Uitgang:

Terwijl Loop in Linux

Terwijl Loop in Linux

Uitleg:

  • #/bin/bash> : Specificeert dat het script moet worden geïnterpreteerd met behulp van de Bash-shell.
  • a=0> : Initialiseert een variabele a> met de waarde 0.
  • while [ $a -lt 10 ]> : Start een while-lus die doorgaat zolang de waarde bedraagt a> is minder dan 10.
  • do> : Markeert het begin van het lichaam van de lus.
  • echo $a> : Drukt de huidige waarde af van a> de console.
  • a=> expr $ a + 1 : Verhoogt de waarde van a> door 1. De expr> commando wordt gebruikt voor rekenkundige uitdrukkingen.
  • done> : Markeert het einde van de lus.

`for`-instructie in Shell Script in Linux

De for-lus werkt op lijsten met items. Het herhaalt een reeks opdrachten voor elk item in een lijst.
Hier is var de naam van een variabele en zijn woord1 tot en met woordN reeksen tekens gescheiden door spaties (woorden). Elke keer dat de for-lus wordt uitgevoerd, wordt de waarde van de variabele var ingesteld op het volgende woord in de lijst met woorden, van woord1 tot woordN.

Syntaxis:

#/bin/bash for in  do       done 

Implementatie van `for` Loop met `break`-instructie in Shell Script.

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim for.sh 

U kunt for.sh vervangen door de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x for.sh 

#/bin/bash

#Begin van for-lus

voor a in 1 2 3 4 5 6 7 8 9 10
Doen

# als a gelijk is aan 5, verbreek dan de lus
als [ $a == 5 ]
Dan
pauze
zijn

# Druk de waarde af
echo Iteratie nee $a
klaar

Uitgang:

Break-instructie voor Loop in Linux

Break-instructie voor Loop in Linux

Uitleg:

  • #/bin/bash> : Specificeert dat het script moet worden geïnterpreteerd met behulp van de Bash-shell.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Start een for-lus die de waarden 1 tot en met 10 herhaalt, waarbij elke waarde aan de variabele wordt toegewezen a> in elke iteratie.
  • do> : Markeert het begin van het lichaam van de lus.
  • if [ $a == 5 ]> : Controleert of de huidige waarde is a> is gelijk aan 5.
    • then> : Markeert het begin van het voorwaardelijke blok dat moet worden uitgevoerd als de voorwaarde waar is.
      • break> : Beëindigt de lus als de voorwaarde waar is.
    • fi> : markeert het einde van het voorwaardelijke blok.
  • echo 'Iteration no $a'> : Drukt een bericht af met het huidige iteratienummer.
  • done> : Markeert het einde van de lus.

Het script zet een for-lus op die de waarden 1 tot en met 10 herhaalt. Tijdens elke iteratie wordt gecontroleerd of de waarde a> is gelijk aan 5. Als dit het geval is, wordt de lus verlaten met behulp van de break> stelling. Anders wordt er een bericht afgedrukt met het huidige iteratienummer. De lus gaat door totdat alle iteraties zijn voltooid of totdat er een break-instructie wordt aangetroffen.

Implementatie van `for` Loop met `continue`-instructie in Shell Script.

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim for_continue.sh 

U kunt for_continue.sh vervangen door de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x for_continue.sh 

#/bin/bash

voor a in 1 2 3 4 5 6 7 8 9 10
Doen

# als a = 5 ga dan verder met de lus en
# ga niet naar regel 8

als [ $a == 5 ]
Dan
doorgaan
zijn
echo Iteratie nee $a
klaar

Uitgang:

continue instructie in for lus in Linux

continue instructie in for lus in Linux

Uitleg:

  • #/bin/bash> : Specificeert dat het script moet worden geïnterpreteerd met behulp van de Bash-shell.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Start een for-lus die de waarden 1 tot en met 10 herhaalt, waarbij elke waarde aan de variabele wordt toegewezen a> in elke iteratie.
  • do> : Markeert het begin van het lichaam van de lus.
  • if [ $a == 5 ]> : Controleert of de huidige waarde is a> is gelijk aan 5.
    • then> : Markeert het begin van het voorwaardelijke blok dat moet worden uitgevoerd als de voorwaarde waar is.
      • continue> : slaat de rest van de hoofdtekst van de lus over en gaat naar de volgende iteratie als de voorwaarde waar is.
    • fi> : markeert het einde van het voorwaardelijke blok.
  • echo 'Iteration no $a'> : Drukt een bericht af met het huidige iteratienummer. Deze regel wordt overgeslagen als a> is gelijk aan 5 vanwege de continue> stelling.
  • done> : Markeert het einde van de lus.

Het script zet een for-lus op die de waarden 1 tot en met 10 herhaalt. Tijdens elke iteratie wordt gecontroleerd of de waarde a> is gelijk aan 5. Als dit het geval is, gaat de lus door naar de volgende iteratie zonder de resterende instructies in de hoofdtekst van de lus uit te voeren. Anders wordt er een bericht afgedrukt met het huidige iteratienummer. De lus gaat door totdat alle iteraties zijn voltooid.

`tot`-instructie in Shell Script in Linux

De until-lus wordt net zo vaak uitgevoerd als de voorwaarde/opdracht onwaar oplevert. De lus eindigt wanneer de voorwaarde/opdracht waar wordt.

Syntaxis:

#/bin/bash until  do       done 

Implementatie van `until` Loop in Shell Scrip

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim until.sh 

Je kunt vervangen tot. sh met de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x until.sh 

#/bin/bash

een=0

# -gt is groter dan operator
#Herhaal de lus totdat a groter is dan 10

tot [ $a -gt 10 ]
Doen

# Druk de waarden af
echo $a

# verhoog de waarde
a=`expr$a+1`
klaar

Uitgang:

Unitl-lus in Linux

Tot-lus in Linux

Uitleg:

  • #/bin/bash> : Specificeert dat het script moet worden geïnterpreteerd met behulp van de Bash-shell.
  • a=0> : Initialiseert een variabele a> met de waarde 0.
  • until [ $a -gt 10 ]> : Start een until-lus die doorgaat zolang de waarde bedraagt a> niet groter is dan 10.
  • do> : Markeert het begin van het lichaam van de lus.
  • echo $a> : Drukt de huidige waarde af van a> de console.
  • a=> expr $ a + 1 : Verhoogt de waarde van a> door 1. De expr> commando wordt gebruikt voor rekenkundige uitdrukkingen.
  • done> : Markeert het einde van de lus.

Opmerking: Shell-scripting is een hoofdlettergevoelige taal, wat betekent dat de juiste syntaxis moet worden gevolgd tijdens het schrijven van de scripts.

Voorbeelden van looping-instructies

1. Itereren over kleuren met behulp van een For-lus

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim color.sh 

U kunt color.sh vervangen door de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x color.sh 

#/bin/bash

KLEUREN=rood groen blauw

# de for-lus gaat door totdat alle waarden van de COLORS zijn gelezen

voor KLEUR in $COLORS
Doen
echo KLEUR: $KLEUR
klaar

Uitgang:

Voor tot in Linux

Voor tot in Linux

Uitleg:

  • Initialisatie van kleuren:
    • COLORS='red green blue'> : Initialiseert een variabele met de naam COLORS> met een door spaties gescheiden lijst met kleurwaarden (rood, groen en blauw).
  • Voor lus-iteratie:
    • for COLOR in $COLORS> : Start een for-lus die elke waarde in de herhaalt COLORS> variabel.
      • Luslichaam:
        • echo 'COLOR: $COLOR'> : drukt voor elke kleur een bericht af, waarin de huidige kleurwaarde wordt weergegeven.
    • De lus gaat door totdat alle waarden in het bestand zijn verwerkt COLORS> variabel.

Dit voorbeeld demonstreert een eenvoudige for-lus in Bash, waarbij een lijst met kleuren wordt doorlopen die zijn opgeslagen in de COLORS> variabel. De lus drukt voor elke kleur een bericht af, waarin wordt aangegeven welke kleur momenteel wordt verwerkt. De lus herhaalt zich totdat alle kleurwaarden zijn opgebruikt.

2. Een oneindige lus creëren met while true in Shell-script

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim infinite.sh 

U kunt oneindig.sh vervangen door de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x infinite.sh 

#/bin/bash

terwijl het waar is
Doen

# Uit te voeren opdracht
# sleep 1 geeft aan dat hij 1 seconde slaapt
echo Hallo, ik ben een oneindige lus
slapen 1
klaar

Uitgang:

oneindige lus in Linux

oneindige lus in Linux

Uitleg:

Oneindige lusstructuur:

  • while true> : Start een while-lus die voor onbepaalde tijd doorgaat als voorwaarde true> is altijd waar.
    • Luslichaam:
      • echo 'Hi, I am infinity loop'> : drukt een bericht af dat aangeeft dat het script zich in een oneindige lus bevindt.
      • sleep 1> : Pauzeert de uitvoering van de lus gedurende 1 seconde vóór de volgende iteratie.
  • De lus gaat voor onbepaalde tijd door en voert de opdrachten binnen zijn lichaam herhaaldelijk uit.

Dit voorbeeld toont de creatie van een oneindige lus met behulp van de while true-constructie in Bash. De lus drukt voortdurend een bericht af waarin de status van een oneindige lus wordt aangegeven en bevat een slaap-1-commando, waardoor een vertraging van één seconde tussen de iteraties ontstaat. Oneindige lussen worden vaak gebruikt voor processen die continu moeten draaien totdat ze handmatig worden onderbroken.

3. Interactieve naambevestigingslus

Eerst maken we een bestand met behulp van een teksteditor in Linux. In dit geval gebruiken we de `vim`editor.

vim name.sh 

U kunt naam.sh vervangen door de gewenste naam.

Vervolgens maken we ons script uitvoerbaar met behulp van de opdracht `chmod` in Linux.

chmod +x name.sh 

#/bin/bash

CORRECT=n
terwijl [ $CORRECT == n ]
Doen

# lus stopt wanneer u y invoert, d.w.z. wanneer uw naam correct is
# -p staat voor prompt die om invoer vraagt

read -p Voer uw naam in: NAAM
lees -p Is ${NAME} juist? JUIST
klaar

Uitgang:

Interactief script in Linux

Interactief script in Linux

Uitleg:

  • Initialisatie:
    • CORRECT=n> : Initialiseert een variabele met de naam CORRECT> met de waarde n. Deze variabele wordt gebruikt om de lus te besturen.
  • Interactieve lus:
    • while [ '$CORRECT' == 'n' ]> : Start een while-lus die doorgaat zolang de waarde van CORRECT> is gelijk aan n.
      • Luslichaam:
        • read -p 'Enter your name:' NAME> : vraagt ​​de gebruiker om zijn of haar naam in te voeren en slaat de invoer op in de NAME> variabel.
        • read -p 'Is ${NAME} correct? ' CORRECT> : Vraagt ​​de gebruiker om te bevestigen of de ingevoerde naam correct is en werkt de naam bij CORRECT> dienovereenkomstig variabel.
    • De lus gaat door totdat de gebruiker y invoert (wat de juiste naam aangeeft).

Dit voorbeeld demonstreert een interactieve lus die de gebruiker vraagt ​​zijn of haar naam in te voeren en vervolgens om bevestiging vraagt. De lus gaat door totdat de gebruiker bevestigt dat de ingevoerde naam correct is door y in te voeren. De lus maakt gebruik van de ` read> `> commando voor gebruikersinvoer en werkt het ` CORRECT> `> variabele om de lusstroom te regelen.

Conclusie

In dit artikel hebben we looping-instructies in Bash-scripting besproken, waarin we while> , for> , En until> lussen. Het introduceert het gebruik van break> En continue> instructies om het gedrag van de lus te wijzigen. Praktische voorbeelden illustreren de implementatie van lussen, inclusief het herhalen van kleurwaarden, het creëren van oneindige lussen en het bouwen van een interactieve lus voor validatie van gebruikersinvoer. De gids biedt een beknopte maar informatieve bron voor het begrijpen en gebruiken van looping-constructies in Bash-scripting.



Dit Vind Je Misschien Leuk