Bemästra Linux-kommandoraden och Bash-skriptning · Lektion

Loopkonstruktioner (for, while)

Automatisera repetitiva uppgifter med 'for'- och 'while'-loopar genom att iterera över listor, filer eller villkor.

Lektion 1 av 411 steg

Loopkonstruktioner (for, while) är en gratis lektion i Bemästra Linux-kommandoraden och Bash-skriptning på CoddyKit. Detta är lektion 1 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 Bash-skriptning, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Bemästra Linux-kommandoraden och Bash-skriptning innehåller totalt 4 lektioner.

Automatisera uppgifter med loopar

Välkommen! I den här lektionen ska vi fördjupa oss i loopar i Bash-skript. Loopar är kraftfulla verktyg som gör att skripten kan upprepa en uppsättning kommandon flera gånger.

Detta är viktigt när du vill automatisera upprepade uppgifter, bearbeta listor med data eller utföra åtgärder tills ett visst villkor är uppfyllt. Vi ska utforska två huvudtyper: for-loopar och while-loopar.

”for”-loopen: Listor med objekt

for-loopen passar perfekt när du vill iterera över en fast lista med objekt. Listan kan bestå av ord, filnamn, tal eller vad som helst som du kan definiera.

Den grundläggande syntaxen är:

  • for variable in item1 item2 ...; do
  • commands to repeat
  • done

Varje objekt i listan tilldelas till variable, och kommandona körs för vart och ett av objekten.

Exempel: Iterera över en lista

Nu ska vi se for-loopen i praktiken genom att iterera över en lista med frukter. Kör exemplet för att se hur varje frukt behandlas:

#!/bin/bash

echo "My favorite fruits:"
for fruit in Apple Banana Orange;
do
  echo "$fruit is delicious!"
done

'for'-loop: Talserier

for-loopen kan också enkelt skapa och iterera över talserier. Det är mycket användbart för uppgifter som kräver att du räknar eller behandlar objekt efter index.

Du kan använda klammerexpansion {start..end} för att skapa en talserie:

  • for i in {1..5}; do ... done

Alternativt kan kommandot seq skapa serier med fler alternativ, till exempel steg:

  • for i in $(seq 1 2 10); do ... done

Exempel: Räkna med 'for'

Så här kan du använda klammerexpansion för att räkna från 1 till 3. Det här är ett vanligt mönster för enkla numeriska loopar.

#!/bin/bash

echo "Counting up:"
for i in {1..3};
do
  echo "Number: $i"
done

'while'-loopen: Villkorsstyrd upprepning

while-loopen kör ett block med kommandon upprepade gånger så länge ett angivet villkor förblir sant. Den passar bra när du inte vet i förväg hur många gånger loopen behöver köras.

Den grundläggande syntaxen är:

  • while [ condition ]; do
  • commands to repeat
  • done

Villkoret utvärderas före varje iteration. Om det är sant körs kommandona; om det är falskt avslutas loopen.

Exempel: Enkel räknare med 'while'

Det här exemplet visar en while-loop som räknar från 1 till 3. Observera hur variabeln count ökas inuti loopen så att villkoret till slut blir falskt.

#!/bin/bash

count=1
echo "Counting with while loop:"
while [ $count -le 3 ];
do
  echo "Current count: $count"
  count=$((count + 1))
done

'while'-loopen: Läsa filer rad för rad

En mycket vanlig och kraftfull användning av while-loopen är att läsa och behandla en fil rad för rad. Det är viktigt när du tolkar loggfiler, konfigurationsfiler eller andra textdata.

Mönstret ser ofta ut så här:

  • while IFS= read -r line; do
  • commands to process $line
  • done < filename.txt

IFS= read -r är ett robust sätt att läsa rader och förhindrar problem med blanksteg och omvända snedstreck.

Exempel: Behandla en fil

Nu skapar vi en temporär fil och använder en while-loop för att läsa och visa innehållet rad för rad. Det här visar en praktisk tillämpning av filhantering.

#!/bin/bash

# Create a temporary file for demonstration
echo "First line of data" > temp_data.txt
echo "Second line of data" >> temp_data.txt
echo "Third line of data" >> temp_data.txt

echo "\nReading from temp_data.txt:"
while IFS= read -r line;
do
  echo "Processed: $line"
done < temp_data.txt

# Clean up the temporary file
rm temp_data.txt

Välja looptyp

Du har nu lärt dig om både for- och while-loopar. De har olika styrkor beroende på uppgiften.

Tänk på följande scenario: Du behöver behandla varje filnamn i en viss katalog.

Sammanfattning: Loopar för automatisering

Du har nu utforskat Bashs loopkonstruktioner!

  • for-loopen passar bra för att iterera över en känd, ändlig lista med objekt eller en talserie.
  • while-loopen passar bäst när du behöver upprepa kommandon så länge ett visst villkor förblir sant, till exempel när du räknar eller läser filer rad för rad.

Att behärska dessa loopar är grundläggande för att skriva kraftfulla och automatiserade Bash-skript. Fortsätt öva för att utveckla dina färdigheter i skriptning!

Gratis att börja

Lär dig Bash 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
22
Lektioner
88

Vanliga frågor

Är lektionen ”Loopkonstruktioner (for, while)” gratis?

Ja – hela texten till ”Loopkonstruktioner (for, while)” 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 och Bash-skriptning, kan Ni uppgradera till CoddyKit PRO. Kursen i Bemästra Linux-kommandoraden och Bash-skriptning innehåller totalt 4 lektioner.

Vad lär jag mig i ”Loopkonstruktioner (for, while)”?

Automatisera repetitiva uppgifter med 'for'- och 'while'-loopar genom att iterera över listor, filer eller villkor. Ni övar på Bemästra Linux-kommandoraden och Bash-skriptning 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 och Bash-skriptning?

Du behöver inga förkunskaper. Utbildningen i Bemästra Linux-kommandoraden och Bash-skriptning 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 1 av 4.

Hur lång tid tar lektionen ”Loopkonstruktioner (for, while)”?

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 och Bash-skriptning-lektionen?

Ja. Varje Bemästra Linux-kommandoraden och Bash-skriptning-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

  1. Loopkonstruktioner (for, while)
  2. Funktioner i Bash-skript
  3. Skriptargument och alternativ ($@, $#, getopts)
  4. case-satsen och mönstermatchning
← Tillbaka till Bemästra Linux-kommandoraden och Bash-skriptning