logo

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

instellingen van de internetbrowser

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 variabelea>met de waarde 0.
  • while [ $a -lt 10 ]> : Start een while-lus die doorgaat zolang de waarde bedraagta>is minder dan 10.
  • do> : Markeert het begin van het lichaam van de lus.
  • echo $a> : Drukt de huidige waarde af vana>de console.
  • a=> expr $ a + 1 : Verhoogt de waarde vana>door 1. Deexpr>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 toegewezena>in elke iteratie.
  • do>: Markeert het begin van het lichaam van de lus.
  • if [ $a == 5 ]>: Controleert of de huidige waarde isa>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 waardea>is gelijk aan 5. Als dit het geval is, wordt de lus verlaten met behulp van debreak>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 toegewezena>in elke iteratie.
  • do> : Markeert het begin van het lichaam van de lus.
  • if [ $a == 5 ]> : Controleert of de huidige waarde isa>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 alsa>is gelijk aan 5 vanwege decontinue>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 waardea>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

reageer inline-stijl

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 variabelea>met de waarde 0.
  • until [ $a -gt 10 ]> : Start een until-lus die doorgaat zolang de waarde bedraagta>niet groter is dan 10.
  • do> : Markeert het begin van het lichaam van de lus.
  • echo $a> : Drukt de huidige waarde af vana>de console.
  • a=> expr $ a + 1 : Verhoogt de waarde vana>door 1. Deexpr>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 naamCOLORS>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 herhaaltCOLORS>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 verwerktCOLORS>variabel.

Dit voorbeeld demonstreert een eenvoudige for-lus in Bash, waarbij een lijst met kleuren wordt doorlopen die zijn opgeslagen in deCOLORS>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.

java-char naar geheel getal
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 voorwaardetrue>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 naamCORRECT>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 vanCORRECT>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 deNAME>variabel.
        • read -p 'Is ${NAME} correct? ' CORRECT>: Vraagt ​​de gebruiker om te bevestigen of de ingevoerde naam correct is en werkt de naam bijCORRECT>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 wewhile>,for>, Enuntil>lussen. Het introduceert het gebruik vanbreak>Encontinue>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.