Wzięź w pętlę z przykładami

Wzięź w pętlę z przykładami

A chwila pętla to podstawowa struktura sterowania w skryptach BASH, która pozwala wielokrotnie wykonywać blok kodu, o ile określony stan jest prawdziwy. While Loop jest niezbędnym narzędziem w przyborniku dowolnego programisty Bash i jest używana do automatyzacji zadań, wykonywania operacji w gromadzeniu danych i wdrażania złożonych algorytmów.

W skryptach Bash, podczas gdy pętle mogą być używane do wykonywania szerokiej gamy zadań, takich jak czytanie i przetwarzanie plików, generowanie raportów, zapytanie do baz danych i interakcja z użytkownikami. Podczas gdy pętle są często stosowane w połączeniu z innymi strukturami kontrolnymi BASH, takimi jak instrukcje warunkowe (jeśli, Elif, else) i inne pętle (do, do), aby wdrożyć złożone algorytmy i skrypty.

W tym samouczku zbadamy podstawową składnię pobytu w pętlach w BASH i zbadamy, w jaki sposób można je wykorzystać do automatyzacji zadań i wdrażania złożonych algorytmów. Omówimy również niektóre typowe przypadki użycia i najlepsze praktyki do pracy z pętlami, i dostarczy.

Składnia

Pętla w czasie jest rodzajem pętli w Bash, która pozwala wielokrotnie wykonywać zestaw poleceń, o ile określony stan jest prawdziwy. Składnia na jakiś czas jest następujący:

podczas gdy warunek wykonuje # polecenia do wykonania
1234podczas gdy indingDo # poleca do wykonania

W tym samouczku omówimy podstawy używania podczas pętli w Bash.

Podstawowy przykład

Zacznijmy od prostego przykładu. Załóżmy, że chcesz liczyć od 1 do 5 i wydrukować każdą liczbę. Możesz to użyć, aby to zrobić, tak jak:

Count = 1, podczas gdy [$ litr -le 5] do echo $ count crowin = $ ((count+1))
123456Count = 1 While [$ Count -le 5] do echo $ Count Count = $ ((count+1))

W tym przykładzie zainicjowaliśmy zmienną o nazwie liczba do 1, a następnie użyliśmy pętli while, aby wielokrotnie wydrukować wartość liczby, o ile jest mniejsza lub równa 5. Wewnątrz pętli drukujemy wartość liczby za pomocą polecenia echo, a następnie zwiększamy wartość liczby o 1 za pomocą składni ((count+1)).

Używając warunku

Warunek na jakiś czas może być dowolnym prawidłowym wyrażeniem BASH. Na przykład możesz użyć warunku, który testuje wartość zmiennej, jak:

Odpowiedź = „nie”, podczas gdy [„$ odpowiedź” != „Tak”] do czytania -p ”Czy chcesz kontynuować? (Tak/nie) ”Odpowiedź zrobiła
12345Odpowiedź = „nie”, podczas gdy [„$ odpowiedź” != „Tak”] do czytania -p ”Czy chcesz kontynuować? (tak/nie) „Odpowiedź

W tym przykładzie zainicjowaliśmy zmienną o nazwie odpowiedź do „nie”, a następnie użyliśmy pętli podczas wielokrotnego monitowania użytkownika do wprowadzenia „Tak” lub „nie”, dopóki użytkownik nie wprowadzi „Tak”. Wewnątrz pętli używamy polecenia odczytu, aby odczytać wiersz wejścia od użytkownika, a następnie testujemy, czy wartość odpowiedzi to „tak” za pomocą [„$ odpowiedzi” != Składnia „tak”].

Korzystanie z instrukcji Break

Możesz użyć instrukcji Break, aby przedwcześnie wyjść. Na przykład:

Count = 1 While [$ Count -le 10] zrób [$ count -eq 5], a następnie złam FI Echo $ Count = $ ((count+1))
12345678910Count = 1 While [$ Count -le 10] do If [$ Count -eq 5], a następnie złam Fi Echo $ Count = $ ((count+1))

W tym przykładzie wykorzystaliśmy pętlę while, aby się liczyć od 1 do 10 i wydrukować każdą liczbę. Uwzględniliśmy jednak również instrukcję IF w pętli, która testuje, czy wartość liczby jest równa 5. Jeśli tak, używamy instrukcji Break, aby wyjść z pętli. W rezultacie ta pętla wydrukuje tylko liczby od 1 do 4.

Korzystanie z instrukcji Kontynuuj

Możesz użyć instrukcji ciągłych, aby przejść do następnej pętli. Na przykład:

Count = 1 While [$ Count -le 5] zrób [$ count -eq 3], a następnie liczba = $ ((count+1)) kontynuuj fi echo $ count = $ ((count+1)) gotowe
1234567891011Count = 1 While [$ Count -le 5] do jeśli [$ count -eq 3] to liczba = $ ((count+1)) kontynuuj fi echo $ count = $ ((count+1)) gotowe

W tym przykładzie wykorzystaliśmy pętlę while, aby się liczyć od 1 do 5 i wydrukować każdą liczbę. Jednak uwzględniliśmy również instrukcję IF w pętli, która testuje, czy wartość liczby jest równa 3. Jeśli tak, używamy instrukcji Kontynuuj, aby przejść do następnej iteracji pętli. W rezultacie ta pętla wydrukuje liczby 1, 2, 4 i 5, ale pomiń numer 3.

Odczytanie wiersza pliku po linii

Jednym z powszechnych przypadków użycia pobytu w bash jest czytanie i przetwarzanie plików. Możesz użyć pętli white, aby odczytać każdy wiersz pliku i wykonać na nim operację. Oto przykład:

#!/bin/bash filename = "przykład.txt „When Read Line do echo” linia przetwarzania: $ linia ” # Dodaj kod, aby przetworzyć linię tutaj gotową < $filename
123456789#!/bin/bash filename = "przykład.txt „podczas czytania linii przetwarzania Linedo Echo”: $ line ” # Dodaj kod, aby przetworzyć linię herredonu < $filename

W tym przykładzie definiujemy zmienną nazwę pliku, która zawiera nazwę pliku, który chcemy przeczytać. Następnie otwieramy pętlę za pomocą polecenia odczytu. Odczytuje jeden wiersz z pliku i przetworzy ją z podanymi instrukcjami.

Zagnieżdżone podczas pętli

Możesz także gniazdować, gdy pętle w sobie tworzą bardziej złożone pętle. Na przykład:

x = 1, podczas gdy [$ x -le 3] do y = 1, podczas gdy [$ y -le 3] do echo "($ x, $ y)" y = $ ((y+1)) wykonane x = $ ((((( x+1)) gotowe
1234567891011x = 1 podczas [$ x -le 3] do y = 1, podczas gdy [$ y -le 3] do echo "($ x, $ y)" y = $ ((y+1)) wykonane x = $ (x (x (x (x (x (x (x (x (x +1)) gotowe

W tym przykładzie wykorzystaliśmy pętlę While, aby się liczyć od 1 do 3 i wydrukować każdą liczbę, a następnie zagnieżdżę się inną, gdy pętla w nim, aby się liczyć od 1 do 3 i wydrukować każdą liczbę ponownie. W rezultacie ta pętla wydrukuje następujące dane wyjściowe:

Wyjście (1, 1) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 3) 

Wniosek

podczas gdy pętle są potężnym narzędziem w Bash, które pozwala powtarzać polecenia, o ile pewien stan jest prawdziwy. Opanowując podstawy pobytu, możesz tworzyć bardziej złożone skrypty i zautomatyzować wspólne zadania.