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.
Szczęśliwy komputer!