logo

Looping uttalanden | Shell Script

Looping statements i Shell Scripting: Det finns totalt 3 looping-satser som kan användas i bash-programmering

Innehållsförteckning



För att ändra flödet av loop-satser, används två kommandon de är,

java int i sträng
  1. ha sönder
  2. Fortsätta

Deras beskrivningar och syntax är följande:

`while`-sats i Shell Script i Linux

Här utvärderas kommandot och kommer att köras baserat på den resulterande slingan, om kommandot höjs till false kommer slingan att avslutas den där.



#/bin/bash while  do       done>

Implementering av 'While' Loop in Shell Script.

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim looping.sh>

Du kan ersätta looping.sh med önskat namn.

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.



chmod +x looping.sh>

#/bin/bash

a=0

# Det är mindre än operatorn

#Iterera slingan tills en mindre än 10

medan [ $a -lt 10 ]
do
# Skriv ut värdena
eko $a
# öka värdet
a=`expr $a + 1`
Gjort

Produktion:

Medan Loop i Linux

Medan Loop i Linux

Förklaring:

  • #/bin/bash> : Anger att skriptet ska tolkas med Bash-skalet.
  • a=0> : Initierar en variabela>med värdet 0.
  • while [ $a -lt 10 ]> : Initierar en while-loop som fortsätter så länge som värdeta>är mindre än 10.
  • do> : Markerar början av slingans kropp.
  • echo $a> : Skriver ut det aktuella värdet påa>konsolen.
  • a=> expr $a + 1 : Ökar värdet påa>av 1. Denexpr>kommando används för aritmetiska uttryck.
  • done> : Markerar slutet av slingan.

`for` uttalande i Shell Script i Linux

For-loopen fungerar på listor med objekt. Den upprepar en uppsättning kommandon för varje objekt i en lista.
Här är var namnet på en variabel och word1 till wordN är sekvenser av tecken separerade med mellanslag (ord). Varje gång for-loopen körs sätts värdet på variabeln var till nästa ord i listan med ord, word1 till wordN.

Syntax:

#/bin/bash for in  do       done>

Implementering av `for` Loop med `break`-sats i Shell Script.

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim for.sh>

Du kan ersätta for.sh med önskat namn.

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.

chmod +x for.sh>

#/bin/bash

#Start av för loop

för en in 1 2 3 4 5 6 7 8 9 10
do

# om a är lika med 5 bryt slingan
om [ $a == 5 ]
sedan
ha sönder
vara

# Skriv ut värdet
echo Iteration nr $a
Gjort

Produktion:

Bryt uttalandet för Loop i linux

Bryt uttalandet för Loop i linux

Förklaring:

  • #/bin/bash>: Anger att skriptet ska tolkas med Bash-skalet.
  • for a in 1 2 3 4 5 6 7 8 9 10>: Initierar en for-loop som itererar över värdena 1 till 10, och tilldelar varje värde till variabelna>i varje iteration.
  • do>: Markerar början av slingans kropp.
  • if [ $a == 5 ]>: Kontrollerar om det aktuella värdeta>är lika med 5.
    • then>: Markerar början av det villkorliga blocket som ska exekveras om villkoret är sant.
      • break>: Lämnar slingan om villkoret är sant.
    • fi>: Markerar slutet på det villkorliga blocket.
  • echo 'Iteration no $a'>: Skriver ut ett meddelande som anger det aktuella iterationsnumret.
  • done>: Markerar slutet av slingan.

Skriptet sätter upp en for-loop som itererar över värdena 1 till 10. Under varje iteration kontrollerar det om värdeta>är lika med 5. Om det är det, avslutas slingan med hjälp avbreak>påstående. Annars skrivs ett meddelande ut som anger det aktuella iterationsnumret. Slingan fortsätter tills den slutför alla iterationer eller tills den stöter på en break-sats.

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

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim for_continue.sh>

Du kan ersätta for_continue.sh med önskat namn.

rekursion java

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.

chmod +x for_continue.sh>

#/bin/bash

för en in 1 2 3 4 5 6 7 8 9 10
do

# om a = 5 fortsätt sedan slingan och
# flytta inte till rad 8

om [ $a == 5 ]
sedan
Fortsätta
vara
echo Iteration nr $a
Gjort

Produktion:

fortsätt uttalande i för loop i Linux

fortsätt uttalande i för loop i Linux

Förklaring:

  • #/bin/bash> : Anger att skriptet ska tolkas med Bash-skalet.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Initierar en for-loop som itererar över värdena 1 till 10, och tilldelar varje värde till variabelna>i varje iteration.
  • do> : Markerar början av slingans kropp.
  • if [ $a == 5 ]> : Kontrollerar om det aktuella värdeta>är lika med 5.
    • then> : Markerar början av det villkorliga blocket som ska exekveras om villkoret är sant.
      • continue> : Hoppar över resten av slingans kropp och går till nästa iteration om villkoret är sant.
    • fi> : Markerar slutet på det villkorliga blocket.
  • echo 'Iteration no $a'> : Skriver ut ett meddelande som anger det aktuella iterationsnumret. Denna rad hoppas över oma>är lika med 5 på grund avcontinue>påstående.
  • done> : Markerar slutet av slingan.

Skriptet sätter upp en for-loop som itererar över värdena 1 till 10. Under varje iteration kontrollerar det om värdeta>är lika med 5. Om så är fallet fortsätter loopen till nästa iteration utan att köra de återstående satserna i loopens kropp. Annars skrivs ett meddelande ut som anger det aktuella iterationsnumret. Slingan fortsätter tills den slutför alla iterationer.

`tills` uttalande i Shell Script i Linux

Till-slingan exekveras så många gånger som villkoret/kommandot utvärderas till falskt. Slingan avslutas när villkoret/kommandot blir sant.

Syntax:

#/bin/bash until  do       done>

Implementerar 'tills' Loop i Shell Scrip

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim until.sh>

Du kan byta ut tills. sh med önskat namn.

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.

chmod +x until.sh>

#/bin/bash

a=0

# -gt är större än operatorn
#Iterera slingan tills a är större än 10

tills [ $a -gt 10 ]
do

# Skriv ut värdena
eko $a

# öka värdet
a=`expr $a + 1`
Gjort

Produktion:

Unitl loop i Linux

Tills loop i Linux

Förklaring:

  • #/bin/bash> : Anger att skriptet ska tolkas med Bash-skalet.
  • a=0> : Initierar en variabela>med värdet 0.
  • until [ $a -gt 10 ]> : Initierar en tills-loop som fortsätter så länge som värdeta>är inte större än 10.
  • do> : Markerar början av slingans kropp.
  • echo $a> : Skriver ut det aktuella värdet påa>konsolen.
  • a=> expr $a + 1 : Ökar värdet påa>av 1. Denexpr>kommando används för aritmetiska uttryck.
  • done> : Markerar slutet av slingan.

Notera: Skalskript är ett skiftlägeskänsligt språk, vilket innebär att korrekt syntax måste följas när man skriver skripten.

Exempel på Looping Statement

1. Iterera över färger med hjälp av en For Loop

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim color.sh>

Du kan ersätta color.sh med önskat namn.

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.

chmod +x color.sh>

#/bin/bash

FÄRGER=röd grön blå

# for-loopen fortsätter tills den läser alla värden från COLOURS

för COLOR i $COLORS
do
echo COLOR: $COLOR
Gjort

Produktion:

Tills i Linux

Tills i Linux

Förklaring:

  • Initiering av färger:
    • COLORS='red green blue'>: Initierar en variabel med namnetCOLORS>med en blankstegsseparerad lista med färgvärden (röd, grön och blå).
  • För loop Iteration:
    • for COLOR in $COLORS>: Initierar en for-loop som itererar över varje värde iCOLORS>variabel.
      • Slingkropp:
        • echo 'COLOR: $COLOR'>: Skriver ut ett meddelande för varje färg som visar det aktuella färgvärdet.
    • Slingan fortsätter tills den behandlar alla värden som finns iCOLORS>variabel.

Det här exemplet visar en enkel för-loop i Bash, itererande över en lista med färger lagrade iCOLORS>variabel. Slingan skriver ut ett meddelande för varje färg som indikerar den aktuella färgen som bearbetas. Slingan itererar tills alla färgvärden är slut.

2. Skapa en oändlig loop med while true i Shell Script

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim infinite.sh>

Du kan ersätta infinite.sh med önskat namn.

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.

css för fetstil
chmod +x infinite.sh>

#/bin/bash

medan det är sant
do

# Kommando som ska köras
# sömn 1 anger att den sover i 1 sek
echo Hej, jag är infinity loop
sova 1
Gjort

Produktion:

oändlig loop i linux

oändlig loop i linux

Förklaring:

Oändlig loopstruktur:

  • while true>: Initierar en while-loop som fortsätter på obestämd tid som villkorettrue>är alltid sant.
    • Slingkropp:
      • echo 'Hi, I am infinity loop'>: Skriver ut ett meddelande som anger att skriptet är i en oändlig loop.
      • sleep 1>: Pausar körningen av loopen i 1 sekund före nästa iteration.
  • Slingan fortsätter på obestämd tid och utför kommandona i kroppen upprepade gånger.

Det här exemplet visar skapandet av en oändlig loop med hjälp av while true-konstruktionen i Bash. Slingan skriver kontinuerligt ut ett meddelande som indikerar dess status som en oändlig slinga och inkluderar ett viloläge 1-kommando, vilket orsakar en fördröjning på en sekund mellan iterationerna. Oändliga loopar används ofta för processer som behöver köras kontinuerligt tills de manuellt avbryts.

3. Interaktiv namnbekräftelseloop

Först skapar vi en fil med en textredigerare i Linux. I det här fallet använder vi `vim`editor.

vim name.sh>

Du kan ersätta name.sh med önskat namn.

Sedan gör vi vårt skript körbart med kommandot `chmod` i Linux.

chmod +x name.sh>

#/bin/bash

RÄTT=n
medan [ $CORRECT == n ]
do

# loop avbryts när du anger y, dvs när ditt namn är korrekt
# -p står för prompt som ber om input

läs -p Ange ditt namn: NAMN
läs -p Är ${NAME} korrekt? KORREKT
Gjort

Produktion:

Interaktivt skript i Linux

Interaktivt skript i Linux

Förklaring:

  • Initiering:
    • CORRECT=n>: Initierar en variabel med namnetCORRECT>med värdet n. Denna variabel används för att styra slingan.
  • Interaktiv loop:
    • while [ '$CORRECT' == 'n' ]>: Initierar en while-loop som fortsätter så länge som värdet påCORRECT>är lika med n.
      • Slingkropp:
        • read -p 'Enter your name:' NAME>: Ber användaren att ange sitt namn och lagrar inmatningen iNAME>variabel.
        • read -p 'Is ${NAME} correct? ' CORRECT>: Ber användaren att bekräfta om det angivna namnet är korrekt och uppdaterarCORRECT>varierar i enlighet därmed.
    • Slingan fortsätter tills användaren anger y (indikerar rätt namn).

Det här exemplet visar en interaktiv loop som uppmanar användaren att ange sitt namn och sedan ber om bekräftelse. Slingan fortsätter tills användaren bekräftar att det angivna namnet är korrekt genom att mata in y. Slingan använder ` read> `>kommandot för användarinmatning och uppdaterar ` CORRECT> `>variabel för att styra slingflödet.

Slutsats

I den här artikeln diskuterade vi looping-satser i Bash scripting, coveringwhile>,for>, ochuntil>slingor. Den introducerar användningen avbreak>ochcontinue>uttalanden för att ändra loopbeteende. Praktiska exempel illustrerar implementeringen av loopar, inklusive iteration över färgvärden, skapa oändliga loopar och bygga en interaktiv loop för validering av användarinmatning. Guiden erbjuder en kortfattad men ändå informativ resurs för att förstå och använda looping-konstruktioner i Bash-skript.