Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 30840 razy

Iterowanie po elementach tablicy

Pętla for w BASH-u występuje w dwóch odmianach. Jedna z nich umożliwia iterowanie po elementach np. tablicy. Oto przykład z wypisywaniem kolejno nazw plików .jpg znajdujących się w bieżącej lokalizacji:

for file in "*.jpg"; do echo $file; done

Powyższy kod wyświetli w kolumnie wszystkie pliki o rozszerzeniu .jpg w konsoli systemowej.

Iterowanie z określonym krokiem i zakresem

Wykonanie klasycznej pętli for, gdzie jest licznik, warunek kończący pętlę i krok wymaga wykorzystania polecenia seq, którego wywołanie z dwoma parametrami:

seq 1 5

wyświetli następujący rezultat:

1
2
3
4
5

To samo polecenie z trzema argumentami:

seq 1 2 5

wyświetli następujący wynik:

1
3
5

Teraz wystarczy w przebiegły sposób wykorzystać to polecenie aby otrzymać coś na wzór klasycznej pętli for:

for i in $(seq 1 5); do echo $i; done

Rezultat:

1
2
3
4
5

Oczywiście, powyższe działanie nie ma zbyt wielkiego sensu, no chyba że wewnątrz pętli wykonywane będą jakieś bardziej złożone zadania.

Powyższa wersja pętli for zadziała w systemowym Shell-u, istnieje jednak bardziej klasycznie wyglądająca pętla, która również działa, ale tylko w BASH-u:

for (( i=1; $i <= 5 ; i++ )); do echo $i; done

Wynik działania powyższego kodu:

1
2
3
4
5

Przerywanie działania pętli

Za pomocą break można w dowolnym miejscu pętli przerwać jej działanie, natomiast za pomocą continue przerwać wykonywanie kodu bieżącego bloku instrukcji i przejść do następnego wykonania pętli.

Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.