Zagnieżdżona pętla w Przykładach skryptu Bash

Zagnieżdżona pętla w Przykładach skryptu Bash

W programowaniu lub skryptowaniu pętla jest jedną z najbardziej podstawowych i potężnych koncepcji. Pętla wykonuje określone zadania, dopóki określone warunki nie zostaną spełnione. Każdy język programowania lub scenariusza ma różne sposoby wdrażania koncepcji.

W tym przewodniku sprawdź zagnieżdżoną pętlę w scenariuszu Bash.

Zagnieżdżona pętla

Z definicji pętla wykonuje określone zadania, dopóki warunki nie zostaną spełnione. Co jeśli zadanie obejmuje uruchomienie pętli? To jest koncepcja zagnieżdżonej pętli. Pętla w pętli.

To jest podstawowa struktura pętli.

while (warunek)
# coś

Tutaj pętla, w którym będzie wykonywać zadania zadeklarowane wewnątrz bloku, o ile stan zostanie spełniony. W przypadku zagnieżdżonej pętli struktura wyglądałaby tak.

# główna pętla
while (warunek)
# zagnieżdżona pętla
while (warunek)
# coś

Teoretycznie zagnieżdżone pętle mogą przejść na nieskończoną głębokość. W wielu sytuacjach zagnieżdżone pętle mogą być idealnym rozwiązaniem.

Pętla w skrypcie Bash

Bash to potężny język skryptowy. Istnieją różne struktury pętli w bicie. Najpopularniejsze są przeznaczone, a także do pętli. Jeśli znasz wcześniej programowanie C/C ++, składnia na pewno będzie wyglądać dość podobna.

Dla pętli

Dla pętli jest jedną z najczęstszych i wszechstronnych form wyjściowych. Struktura pętli w skryptowaniu bashu. Struktura bardzo przypomina pętlę w C/C ++.

Struktura pętli w Bash jest następująca.

dla ((inicjalizuj; warunek; przyrost)); Do
# coś
zrobione

Struktura jest bardzo oczywista. Sekcja inicjalizacji nie jest obowiązkowa. Jednak warunek i przyrost są wyższym priorytetem.

Włóżmy to w akcję. Oto bardzo uproszczony skrypt bash, który implementuje pętlę.

dla ((i = 0; i < 5 ; i++)); do
Echo „Hello World”
zrobione

Możliwe jest również użycie listy/zakresu jako warunku pętli. Jest to szczególnie przydatne, jeśli praca z listą plików, zakresów liczb, tablic, wyjść poleceń itp. Struktura wygląda mniej więcej tak.

dla przedmiotu w ; Do
# coś
zrobione

Na przykład następujący skrypt wydrukuje pięć razy „Hello World”.

Dla I in 1… 5; Do
Echo „Hello World”
zrobione

Co jeśli będziemy musieli pracować z zawartością katalogu? W poniższym przykładzie skrypt wydrukuje wszystkie pliki w katalogu /usr /bin.

dla i in/usr/bin/*; Do
echo $ i
zrobione

Co robimy, aby zagnieżdżać pętlę? To tylko jeden dla pętli w innym. Oto zagnieżdżona pętla za pomocą poprzedniego przykładu.

dla ((i = 0; i < 3 ; i++)); do
dla ((j = 0; j < 2 ; j++)); do
Echo „Hello World”
zrobione
zrobione

Wyjście to „Hello World” 6 razy. Zewnętrzna pętla będzie działać trzy razy, dwukrotnie uruchamiając wewnętrzną pętlę.

Podczas pętli

Pętla While to kolejna popularna i intuicyjna pętla dostępna w skryptach Bash. Składnia wygląda tak.

chwila ; Do
# coś
zrobione

W poniższym przykładzie skrypt wydrukuje „Hello World” pięć razy.

num = 1
podczas gdy [$ num -le 5]; Do
Echo „Hello World”
num = $ (($ num+1))
zrobione

Jak wyglądałoby zagnieżdżone podczas pętli? Oto prosty przykład.

num_a = 1
num_b = 1
podczas gdy [$ num_a -le 5]; Do
podczas gdy [$ num_b -le 5]; Do
Echo „Hello World”
num_b = $ (($ num_b+1))
zrobione
num_a = $ (($ num_a+1))
zrobione

Aż do pętli

Jeśli masz tło programowania w C/C ++, znasz pętlę do zrobienia. Niestety, Bash nie ma takiego. Jednak dopóki pętla nie będzie działać w podobny sposób. Składnia również wygląda tak samo.

dopóki [ ]; Do
# coś
zrobione

Różnica między While i do momentu, gdy pętla będzie warunkiem testu. Tak długo, jak warunek testu jest prawdziwy, pętla w czasie będzie działać. Do dopóki pętla będzie jednak działać tylko wtedy, gdy warunek jest fałszywy.

Oto szybki przykład pętli While. Wydrukuje tabelę mnożenia 2.

num_a = 1
do [$ num_a -gt 10]; Do
Echo $ (($ num_a * 2))
num_a = $ (($ num_a+1))
zrobione

Pętla

W niektórych sytuacjach, jeśli spełnione zostaną pewne warunki, reszta pętli staje się zbędna. Pętle to interesująca funkcja, która umożliwia rozbicie pętli w danym stanie. Ważniejsze jest to dla zagnieżdżonych pętli jako wyższe pętle, tym więcej zużycia zasobów i nieefektywność.

Tutaj następujące pętle przestaną wykonywać, gdy tylko osiągnie warunek.

dla ((i = 1; i<=100;i++)); do
echo $ i
jeśli [$ i -eq 10]; Następnie
przerwa
fi
zrobione

Sprawdź, jak się zepsuć podczas pętli w celu dogłębnego wyjaśnienia i demonstracji pętli.

Końcowe przemyślenia

Zagnieżdżona pętla to prosta i potężna koncepcja do zrozumienia i wdrożenia. Mamy nadzieję, że ten przewodnik był w stanie opisać i zademonstrować koncepcję.

Zainteresowany większą liczbą przewodników dotyczących bashów? Sprawdź następujące przewodniki.

  • Bash Infinite Loop
  • Wejście użytkownika skryptu Bash
  • Tablica powracająca funkcję bash

Szczęśliwy komputer!