BASH – Pętla for
: Kompleksowy przewodnik
BASH (Bourne Again Shell) to jedno z najczęściej używanych narzędzi w systemach Linux i Unix, oferujące bogate możliwości automatyzacji zadań dzięki skryptom powłoki. Jednym z najważniejszych narzędzi w arsenale BASH jest pętla for
, która pozwala na iterację przez różne zestawy danych w prosty i przejrzysty sposób.
W tym artykule omówimy składnię i zastosowanie pętli for
w BASH, pokażemy różne jej warianty oraz przedstawimy praktyczne przykłady użycia.
Czym jest pętla for
w BASH?
Pętla for
w BASH jest konstrukcją umożliwiającą iterację przez elementy listy, zakres wartości lub wyniki poleceń. Dzięki niej można wykonywać powtarzalne operacje na zestawie danych, co znacząco upraszcza skrypty i automatyzację zadań.

Składnia pętli for
Podstawowa składnia pętli for
wygląda następująco:
for zmienna in lista
do
# Komendy do wykonania
done
Kluczowe elementy:
for zmienna
– deklaruje zmienną, która przyjmuje kolejno każdą wartość z listy.in lista
– określa listę elementów, przez które pętla iteruje.do
idone
– oznaczają początek i koniec bloku kodu wykonywanego w każdej iteracji.
Rodzaje zastosowań pętli for
1. Iteracja przez listę wartości
Najprostszym zastosowaniem pętli for
jest iteracja przez zadaną listę wartości.
Przykład:
#!/bin/bash
for kolor in czerwony zielony niebieski
do
echo "Kolor: $kolor"
done
2. Iteracja przez pliki w katalogu
Pętla for
jest często używana do operacji na plikach w katalogu.
Przykład:
#!/bin/bash
for plik in /etc/*.conf
do
echo "Znaleziono plik konfiguracyjny: $plik"
done
3. Iteracja przez zakres liczb
W przypadku iteracji przez liczby możemy użyć operatora {START..STOP}
.
Przykład:
#!/bin/bash
for liczba in {1..5}
do
echo "Liczba: $liczba"
done
4. Iteracja z określeniem kroku
Aby iterować z określonym krokiem, używamy konstrukcji seq
.
Przykład:
#!/bin/bash
for liczba in $(seq 1 2 10)
do
echo "Liczba: $liczba"
done
Pętla for
a wynik polecenia
Pętla for
może iterować przez wyniki dowolnego polecenia, co jest bardzo przydatne w praktyce.
Przykład:
#!/bin/bash
for plik in $(ls /var/log)
do
echo "Plik logu: $plik"
done
Zagnieżdżanie pętli for
Możliwe jest zagnieżdżanie pętli for
w celu wykonywania bardziej złożonych operacji.
Przykład:
#!/bin/bash
for liczba in {1..3}
do
for litera in a b c
do
echo "Liczba: $liczba, Litera: $litera"
done
done
Pętla for
w połączeniu z instrukcjami warunkowymi
Pętle for
mogą być używane razem z instrukcjami warunkowymi, aby wprowadzać logikę do skryptów.
Przykład:
#!/bin/bash
for plik in /var/log/*
do
if [[ -f $plik ]]
then
echo "Plik: $plik"
else
echo "$plik nie jest plikiem"
fi
done
Przykłady zastosowań pętli for
w praktyce
1. Automatyczne tworzenie kopii zapasowych
#!/bin/bash
for plik in /home/user/dokumenty/*
do
cp $plik /backup/
echo "Skopiowano: $plik"
done
2. Monitorowanie użycia miejsca na dysku
#!/bin/bash
for katalog in /home/* /var/*
do
echo "Użycie dla $katalog:"
du -sh $katalog
done
3. Przetwarzanie danych z pliku tekstowego
#!/bin/bash
for linia in $(cat lista_uzytkownikow.txt)
do
echo "Przetwarzanie użytkownika: $linia"
useradd $linia
done
Zalety stosowania pętli for
- Prostota i czytelność – składnia pętli
for
jest intuicyjna i łatwa do zrozumienia. - Uniwersalność – pętla może iterować przez listy, pliki, wyniki poleceń i zakresy liczb.
- Elastyczność – pozwala na wprowadzanie warunków i wykonywanie różnych działań w każdej iteracji.
Typowe błędy i jak ich unikać
- Nieprawidłowe listy wartości:
- Jeśli lista zawiera spacje, należy używać cudzysłowów.
- Nieprawidłowo:
for plik in Plik1 Plik2 "Plik 3" do echo $plik done
- Prawidłowo:
for plik in "Plik 1" "Plik 2" "Plik 3" do echo $plik done
- Brak uwzględnienia pustych wartości:
- Pusta lista może prowadzić do błędów. Upewnij się, że lista wejściowa nie jest pusta.
- Niepoprawne użycie nawiasów klamrowych:
- Poprawny zapis dla zakresów to
{START..STOP}
.
- Poprawny zapis dla zakresów to
Podsumowanie
Pętla for
w BASH to jedno z najważniejszych narzędzi, które pozwala na automatyzację wielu zadań w systemie Linux. Jej wszechstronność i łatwość użycia sprawiają, że jest podstawowym elementem każdego skryptu powłoki. Od prostych iteracji przez listy wartości, po złożone operacje na plikach i katalogach – pętla for
umożliwia efektywne zarządzanie danymi i procesami.
Jeśli dopiero zaczynasz swoją przygodę z BASH, eksperymentuj z pętlą for
, aby lepiej zrozumieć jej możliwości. Dzięki praktyce szybko odkryjesz, jak bardzo przydatna jest w codziennej pracy z systemem Linux!