Loopar: `for`, `while`, `until`
Automatisera upprepade uppgifter genom att behärska olika typer av loopar i skalskript.
Loopar: `for`, `while`, `until` är en gratis lektion i Bemästra Linux-kommandoraden på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Bemästra Linux-kommandoraden, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Bemästra Linux-kommandoraden innehåller totalt 4 lektioner.
Varför använda loopar?
Föreställ dig att du behöver utföra samma åtgärd många gånger, till exempel säga 'Hej' till alla i en lista eller räkna från 1 till 100. Att göra detta manuellt skulle vara tröttsamt och felbenäget.
Det är här loopar kommer in! Loopar gör att skriptet kan upprepa en uppsättning kommandon flera gånger, vilket sparar arbete och gör skripten effektivare.
Gå igenom objekt med `for`
for-loopen passar perfekt när du vet exakt vilka objekt du vill iterera över. Den går igenom en lista och bearbetar varje objekt ett i taget.
Den grundläggande syntaxen ser ut så här:
for item in list; do# commands to run for each itemdone
Variabeln item innehåller varje värde från list i tur och ordning.
`for`-loop i praktiken
Låt oss se hur for-loopen itererar över en lista med namn. Varje namn tilldelas variabeln name och skrivs sedan ut.
Prova att köra det här exemplet:
#!/bin/bash
echo "--- Greeting Friends ---"
for name in Alice Bob Charlie;
do
echo "Hello, $name!"
done
echo "--- All greeted! ---"`for`-loop för talintervall
Vad gör du om du behöver loopa ett visst antal gånger, till exempel räkna från 1 till 5? Du kan generera sekvenser för for-loopen:
- Klammerexpansion:
{1..5}skapar "1 2 3 4 5". - Kommandot
seq:$(seq 1 5)skapar också "1 2 3 4 5".
Båda är praktiska för numeriska iterationer.
Räkna med en `for`-loop
Så här kan du använda klammerexpansion för att räkna upp till ett visst tal. Loopvariabeln i får varje tal i sekvensen.
Prova att köra det här exemplet:
#!/bin/bash
echo "Counting up!"
for i in {1..3};
do
echo "Count: $i"
done
echo "Done counting."Upprepa med `while`
while-loopen används när du vill upprepa kommandon så länge ett visst villkor förblir sant. Den kontrollerar villkoret före varje iteration.
Den grundläggande strukturen är:
while condition; do# commands to rundone
Loopen avslutas så snart condition blir falskt.
Räknare i en `while`-loop
Låt oss använda en while-loop för att räkna. Vi initierar en variabel count, och loopen fortsätter så länge count är mindre än 3.
Kom ihåg att uppdatera variabeln inuti loopen, annars kan den köras för alltid (en 'oändlig loop')!
#!/bin/bash
count=0
echo "Starting while loop..."
while [ $count -lt 3 ]; do
echo "Current count: $count"
count=$((count + 1))
done
echo "While loop finished."Upprepa `until` True
until-loopen liknar while, men har ett omvänt villkor. Den kör kommandon tills ett angivet villkor blir sant.
Syntaxen är:
until condition; do# commands to rundone
Loopen fortsätter så länge condition är falskt.
`until`-loop i praktiken
Här är en until-loop som väntar på att en variabel num ska nå 3. Den fortsätter att köras så länge num inte är större än eller lika med 3.
Prova att köra det här exemplet:
#!/bin/bash
num=0
echo "Starting until loop..."
until [ $num -ge 3 ]; do
echo "Current number: $num"
num=$((num + 1))
done
echo "Until loop finished."När ska du använda vilken loop?
Om du väljer rätt loop blir skripten tydligare och effektivare:
for-loop: Bäst för iteration över en känd lista med objekt (filer, namn eller tal i ett intervall).while-loop: Idealisk när du behöver upprepa kommandon så länge ett villkor är sant (till exempel läsa rader från en fil, vänta på användarinmatning eller räkna).until-loop: Användbar när du vill upprepa kommandon tills ett specifikt villkor blir sant (till exempel vänta på att en process ska slutföras eller försöka utföra en åtgärd igen).
Looputmaning
Låt oss testa dina kunskaper om skalloopar.
Loopar: Snabb repetition
Bra jobbat! Du har lärt dig de grundläggande loopkonstruktionerna i skalskriptning:
for-loopen itererar över en fast lista med objekt eller ett intervall.while-loopen upprepar kommandon så länge ett villkor är sant.until-loopen upprepar kommandon tills ett villkor blir sant.
Dessa loopar är nödvändiga för att automatisera upprepade uppgifter och göra skripten dynamiska och kraftfulla. Fortsätt öva!
Lär dig Bemästra Linux-kommandoraden med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Loopar: `for`, `while`, `until`” gratis?
Ja – hela texten till ”Loopar: `for`, `while`, `until`” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Bemästra Linux-kommandoraden, kan Ni uppgradera till CoddyKit PRO. Kursen i Bemästra Linux-kommandoraden innehåller totalt 4 lektioner.
Vad lär jag mig i ”Loopar: `for`, `while`, `until`”?
Automatisera upprepade uppgifter genom att behärska olika typer av loopar i skalskript. Ni övar på Bemästra Linux-kommandoraden med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Bemästra Linux-kommandoraden?
Du behöver inga förkunskaper. Utbildningen i Bemästra Linux-kommandoraden på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Loopar: `for`, `while`, `until`”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Bemästra Linux-kommandoraden-lektionen?
Ja. Varje Bemästra Linux-kommandoraden-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Variabler, indata och utdata
- Villkorssatser: `if`, `else`, `case`
- Loopar: `for`, `while`, `until`
- Funktioner och argument i shellskript