Ponieważ BASH jest językiem wiersza poleceń, mamy całkiem bogate w funkcje doświadczenie, które pozwala wykorzystać umiejętności programowania do wykonywania zadań w terminalu. Możemy używać pętli i instrukcji warunkowych w skryptach BASH do rozwiązywania powtarzalnych i trudnych problemów w prosty, programowy sposób. W tym artykule skupimy się na dla pętli w skryptach BASH.
W zależności od przypadku użycia i problemu, który próbuje zautomatyzować, istnieje kilka sposobów wykorzystania pętli.
- Prosta pętla For
- Pętla for oparta na zakresie
- Iteracja tablicy dla pętli
- Pętle w stylu C
- Nieskończona pętla for
Prosta pętla For
Aby wykonać pętlę for, możemy napisać następującą składnię:
#!/bin/bash for n in a b c; do echo $n done>
- W pierwszej iteracji
n>przyjmuje wartość a i skrypt wypisuje a. - W drugiej iteracji
n>przyjmuje wartość b i skrypt wypisuje b. - W trzeciej iteracji
n>przyjmuje wartość c, a skrypt wypisuje c.

Powyższe polecenie wykona iterację po określonych elementach po W słowo kluczowe jedno po drugim. Elementami mogą być liczby, ciągi znaków lub inne formy danych.
Pętla for oparta na zakresie
Możemy używać pętli for opartych na zakresie. W tego typu pętli możemy określić liczbę rozpoczynającą się, kończącą i zwiększającą się przy każdej iteracji (opcjonalnie) instrukcji. Można to zrobić na dwa sposoby, tj. podając wartość przyrostu/zmniejszenia i domyślnie zwiększając o jeden. Składnia wygląda następująco:
#!/bin/bash for n in {1..5}; do echo $n done> 
W powyższym kodzie używamy {} do określenia zakresu liczb. Wewnątrz nawiasów klamrowych określamy punkt początkowy, po którym następują dwie kropki i punkt końcowy. Domyślnie zwiększa się o jeden. Dlatego drukujemy 5 liczb od 1 do 5 włącznie.
#!/bin/bash for n in {1..5..2}; do echo $n done> 
hashmapa w Javie
Tutaj widzimy, że pętla wzrosła o 2 jednostki, jak wspomniano w nawiasach klamrowych. Dzięki temu praca z liczbami jest bardzo łatwa i wygodna. Można tego również używać ze znakami alfabetu.
NOTATKA: Nie możemy używać zmiennych wewnątrz nawiasów klamrowych, więc będziemy musieli zakodować wartości na stałe. Aby skorzystać ze zmiennych, w kilku następnych sekcjach omówimy tradycyjne pętle for w stylu C.
Iteracja tablicy dla pętli
Możemy wygodnie iterować po tablicach w bashu, używając pętli for o określonej składni. Możemy użyć specjalnych zmiennych w BASH, tj. @, aby uzyskać dostęp do wszystkich elementów tablicy. Spójrzmy na kod:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
Możemy iterować po elementach tablicy za pomocą operatora @, który pobiera wszystkie elementy tablicy. Używając pętli for, iterujemy po nich jeden po drugim. Używamy zmiennej ${nazwa_zmiennej[@]}, w której nawiasy klamrowe rozszerzają tutaj wartość zmiennej s, która jest tablicą ciągów znaków. Za pomocą operatora [@] uzyskujemy dostęp do wszystkich elementów i w ten sposób iterujemy po nich w pętli for. Tutaj N jest iteratorem, dlatego możemy wydrukować wartość lub wykonać na niej wymagane przetwarzanie.
Pętle w stylu C
Jak powiedziano wcześniej, musimy użyć zmiennych znajdujących się wewnątrz pętli for, aby wykonać iterację po pewnym zakresie elementów. Dlatego pętle for w stylu C odgrywają bardzo ważną rolę. Zobaczmy, jak z nich korzystamy.
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

Jak widać możemy dynamicznie wykorzystywać wartość zakresu warunków końcowych. Pamiętaj, że spacje między podwójnymi nawiasami mogą być zamierzone i stanowią część składni. Pętle for w stylu C to pętle składające się z 3 części, iteratora inicjującego, elementu inkrementującego/dekrementującego i warunku końcowego.
W powyższej składni zainicjowaliśmy iterator/licznik pętli na 1, który może mieć dowolną wartość, zgodnie z wyborem. Druga część to warunek końcowy, tutaj użyliśmy zmiennej N który jest inicjowany przed pętlą for, dlatego używamy prostego $ operator, aby uzyskać wartość zmiennej. Na koniec mamy inkrementator/dekrementator, który zmienia iterator/licznik na dowolną wartość, ale w tym przykładzie użyliśmy operatora jednoargumentowego (++) aby zwiększyć wartość o jeden, co jest równoważne ja=i+1 . W ten sposób możemy używać wyrażeń takich jak i+=2, i–,++i, i tak dalej i tak dalej.
Nieskończona pętla for
Nie używamy tego często, ale czasami przydaje się, aby pewne rzeczy działały. Składnia jest dość prosta i podobna do pętli for w stylu C.
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
Pętla zaczyna się odn>ustawiony na 4. Zwiększa sięn>o 1 w każdej iteracji i wypisuje wartośćn>dopókin>staje się równa 9. Kiedyn>osiąga 9,break>instrukcja jest wykonywana, a pętla kończy się. Skrypt zatrzymuje się po wydrukowaniu cyfr od 4 do 8.
wiek Ankity Lokhande

Jak widzimy, pętla „for” nie ma warunków i będzie się ona powtarzać w nieskończoność, ale mamy instrukcję warunku, która pozwala sprawdzić, czy nie będzie ona trwać wiecznie. Używamy instrukcji break wewnątrz instrukcji if, aby wyjść z pętli i zatrzymać iterację. Użyliśmy inkrementatora do zwiększenia zmiennej w pętli, w przeciwnym razie pętla jest nieskończona. Oczywiście potrzebujemy logiki, aby wyjść z pętli i dlatego musimy użyć instrukcji warunkowej if.