For Loop jest integralną częścią każdego języka programowania. Pozwala programom na iterację przez określoną liczbę elementów.
Na przykład, jeśli chcesz przejrzeć listę lub tablicę elementów 'n’, użyjesz pętli for. Weźmy prosty przykład:
1Fioletowy2Indygo3Niebieski4ZielonyTęczowy Stół
Aby wykonać jakiekolwiek czynności lub iterować elementy w powyższej tabeli, potrzebujemy pętli For.
Spis treści:
Bash For Loop
W skrypcie bash składnia For Loop wygląda następująco:
#!/bin/bash for VAR in 1 2 3 4 5.....N do ACTION 1 ACTION 2 ..... done
Bash For Loop jest dość prosty. Pierwsza linia #!/bin/bash wskazuje, że kod jest skryptem bash. VAR oznacza tymczasową zmienną używaną do zapętlania. N oznacza maksymalną liczbę iteracji. 'do’ i 'done’ odpowiednio uruchamiają i zatrzymują pętlę. Akcje to polecenia wykonywane w pętli.
Możemy wykonać Bash For Loop z różnymi zmiennymi, takimi jak lista, łańcuchy, liczby całkowite i tablice. W tym artykule pokażemy kilka typowych przykładów Bash For Loop.
Możesz bezpośrednio uruchomić te programy w wierszu poleceń bash lub zapisać je w pliku i uruchomić plik za pomocą polecenia Bash nazwa_pliku.sh.
Czytanie listy statycznej
Rozważ następującą listę – rainbowColorList = Violet, Indigo, Blue, Green, Yellow, Orange, Red
Możemy wydrukować powyższą listę ciągów za pomocą Bash For Loop w następujący sposób:
#! /bin/sh # Define the list rainbowColorList=Violet,Indigo,Blue,Green,Yellow,Orange,Red # Comma separator pattern using //,/ for colors in ${rainbowColorList//,/ } do echo $colors done
Wynikiem będzie lista pozycji w nowej linii.
#Output Violet Indigo Blue Green Yellow Orange Red
Odczytywanie tablicy
Składnia deklarowania tablicy jest inna. Użyj nawiasów dla każdego elementu (String).
rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red") for colors in "${rainbowArray[@]}"; do echo "I like $colors" done
„@” służy do iteracji przez każdy element tablicy.
#Output I like Violet I like Indigo I like Blue I like Green I like Yellow I like Orange I like Red
Możemy również użyć pętli For do wydrukowania indeksów i elementów tablicy.
#Printing with index rainbowArray=("Violet" "Indigo" "Blue" "Green" "Yellow" "Orange" "Red") for i in "${!rainbowArray[@]}"; do echo "Color at index " $i " : " "${rainbowArray[$i]}" i=$((i+1)); done
#Output Color at index 0 : Violet Color at index 1 : Indigo Color at index 2 : Blue Color at index 3 : Green Color at index 4 : Yellow Color at index 5 : Orange Color at index 6 : Red
Zauważ, że używamy ’!’ w pętli, aby uzyskać indeks elementu.
Iteracyjny zakres liczb
Możemy użyć Bash For Loop do iteracji w zakresie liczb.
#iterating over range of numbers echo "Countdown begins..." for N in {10..0} do echo "$N" done
’..’ wskazuje zakres liczb.
#Output 10 9 8 7 6 5 4 3 2 1 0
Możemy również pominąć liczby zliczane, określając zakres.
W poniższym przykładzie pomijamy liczenie o 3.
#iterating with skip counting echo "Countdown begins..." for N in {30..0..3} do echo "$N" done
Powyższy program zaczyna się od 30 jako pierwszej liczby i odlicza do 0. Ostatni parametr w pętli for „3” określa liczbę pominięć.
#Output 30 27 24 21 18 15 12 9 6 3 0
Ciągi i znaki
Za pomocą Bash For Loop możemy wykonać wiele interesujących operacji na ciągach.
Na przykład możemy odczytać każdy znak ciągu za pomocą operatora 'seq’ w pętli For:
#read characters of a string myword="welcome" for i in $(seq 1 ${#myword}) do echo "${myword:i-1:1}" done
Zauważ, że 'seq’ powinno zaczynać się od 1, aby najpierw otrzymać pierwszy znak.
#Output W e l c o m e
Możemy również wydrukować ciągi oddzielone spacją jeden po drugim:
#read each word from a sentence mysentence="Welcome to newsblog.pl. One stop hub for all techies" for word in $mysentence; do echo $word done
#Output Welcome to newsblog.pl. One stop hub for all techies
Wyrażenia
Podobnie jak w każdym innym języku programowania, takim jak Java, możemy umieszczać wyrażenia wewnątrz Bash For Loop.
for (( var=10; var>=0; var-- )) do echo "Counting down...$var" done
#Output Counting down...10 Counting down...9 Counting down...8 Counting down...7 Counting down...6 Counting down...5 Counting down...4 Counting down...3 Counting down...2 Counting down...1 Counting down...0
Odczytywanie argumentów wiersza poleceń
Aby czytać z argumentów wiersza poleceń, używamy polecenia 'read’. W poniższym przykładzie otrzymamy od użytkownika kilka liczb i wypiszemy sumę za pomocą Bash For Loop. Używamy zmiennej total do przechowywania pośredniej i końcowej sumy lub sumy liczb.
read -a array -p "Enter the numbers you want to add:" total=0 for i in ${array[@]}; do let total+=$i done echo "Sum of the numbers is: $total"
Dane wyjściowe to:
#Output Enter the numbers you want to add: 3 4 66 Sum of the numbers is: 73
Znajdowanie liczb nieparzystych i parzystych
Aby znaleźć liczby nieparzyste i parzyste od 1 do 10 (lub dowolną liczbę N), powinniśmy użyć warunku if wraz z Bash for Loop. Aby określić liczbę parzystą, podzielimy tę liczbę przez 2, a jeśli reszta wynosi 0, zaklasyfikujemy ją jako parzystą w przeciwnym razie nieparzystą.
#declare the list where the even and odd numbers will be sorted and kept evennum="" oddnum="" for (( i=1; i<=10; i++ )) do remainder=$(( $i % 2 )) if [ $remainder -eq 0 ]; then evennum="$evennum $i " else oddnum="$oddnum $i " fi done echo "Even numbers are: "$evennum echo "Odd numbers are: "$oddnum
Zauważ, że w powyższym przykładzie podajemy zakres jako 10. Możemy zmienić tę liczbę, aby uzyskać liczby parzyste i nieparzyste z dowolnego zakresu. Możesz także spróbować odczytać liczbę od użytkownika za pomocą polecenia „odczytaj”, którego nauczyliśmy się w poprzedniej sekcji.
#Output Even numbers are: 2 4 6 8 10 Odd numbers are: 1 3 5 7 9
Nieskończona pętla
Nieskończoność lub nieskończona Pętla to pętla, która nie przestaje się wykonywać, a program musi zostać zmuszony do zatrzymania się za pomocą Ctrl+C. Możemy łatwo stworzyć nieskończoną pętlę za pomocą ’; ;’ operator wewnątrz pętli for:
for (( ; ; )) do echo "Welcome to newsblog.pl" done
#Output Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl Welcome to newsblog.pl ^C $
Przerwij oświadczenie
Instrukcje Break są używane do przerwania pętli, gdy spełniony jest warunek „if”.
for color in Violet Indigo Blue Green Yellow Orange Red do if [[ "$color" == 'Green' ]]; then break fi echo "Searching for Green, the color now is $color" done echo "I found my color $color"
W tym przykładzie próbujemy znaleźć kolor zielony. For-Loop przechodzi w pętlę przez każdy kolor, a po znalezieniu koloru zielonego program wychodzi z pętli z powodu instrukcji break.
#Output Searching for Green, the color now is Violet Searching for Green, the color now is Indigo Searching for Green, the color now is Blue I found my color Green
Kontynuuj oświadczenie
Kontynuuj służy do pominięcia bieżącej pętli i przejścia do następnej w oparciu o określony warunek. Na przykład, jeśli nie chcesz drukować koloru 'Zielonego’ z naszego poprzedniego programu, możemy wstawić kontynuuj, a wszystkie inne kolory z wyjątkiem zielonego zostaną wyświetlone.
for color in Violet Indigo Blue Green Yellow Orange Red do if [[ "$color" == 'Green' ]]; then continue fi echo "$color" done
#Output Violet Indigo Blue Yellow Orange Red
Ostatnie słowa
Omówiliśmy najczęstsze zastosowania Bash For Loop, używając ciągów, liczb całkowitych, tablic i list. Jeśli uczysz się systemu Linux, ale masz komputer z systemem Windows 10, możesz użyć funkcji WSL i zainstalować system Linux na komputerze z systemem Windows.
Następnie możesz używać terminala Linux w podobny sposób do CMD.
Następnie możesz sprawdzić Jak uruchamiać skrypty bash za pomocą Pythona?