Shell Scripting - For Loops
Spisu treści:
- Standardowy Bash For Loop
- Pętla nad łańcuchami
- Pętla w zakresie liczb
- Pętla elementów tablicy
- Bash w stylu C dla pętli
- Złam i kontynuuj instrukcje
- Oświadczenie o złamaniu
- Kontynuuj Instrukcja
- Przykłady Bash dla pętli
- Zmienianie nazw plików ze spacjami w nazwie pliku
- Zmiana rozszerzenia pliku
- Wniosek
Pętle są jedną z podstawowych koncepcji języków programowania. Pętle są przydatne, gdy chcesz uruchamiać serię poleceń w kółko, dopóki nie zostanie spełniony określony warunek.
W językach skryptowych, takich jak Bash, pętle są przydatne do automatyzacji powtarzalnych zadań.
Istnieją trzy podstawowe konstrukcje pętli w skryptach Bash, dla pętli, pętli while i pętli till.
W tym samouczku omówimy podstawy pętli for w Bash. Pokażemy także, jak korzystać z instrukcji break i kontynuuj, aby zmienić przepływ pętli.
Standardowy Bash For Loop
Pętla for iteruje listę elementów i wykonuje podany zestaw poleceń.
Pętla Bash for ma następującą postać:
for item in do done
Lista może być ciągiem znaków oddzielonych spacjami, zakresem liczb, wynikiem polecenia, tablicą i tak dalej.
Pętla nad łańcuchami
W poniższym przykładzie pętla będzie iterować każdy element na liście ciągów, a
element
zmienny zostanie ustawiony na bieżący element.
for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done
Pętla wygeneruje następujące dane wyjściowe:
Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium
Pętla w zakresie liczb
Możesz użyć wyrażenia sekwencji, aby określić zakres liczb lub znaków, definiując początek i punkt końcowy zakresu. Wyrażenie sekwencji ma następującą postać:
{START..END}
W poniższym przykładzie pętla będzie iterować wszystkie liczby od 0 do 3.
for i in {0..3} do echo "Number: $i" done
Number: 0 Number: 1 Number: 2 Number: 3
Począwszy od wersji Bash 4, możliwe jest również określenie przyrostu przy użyciu zakresów. Wyrażenie przyjmuje następującą postać:
{START..END..INCREMENT}
for i in {0..20..5} do echo "Number: $i" done
Number: 0 Number: 5 Number: 10 Number: 15 Number: 20
Pętla elementów tablicy
Możesz także użyć pętli for do iteracji po tablicy elementów:
W poniższym przykładzie definiujemy tablicę
BOOKS
i iterujemy każdy element tablicy.
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done
Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby
Bash w stylu C dla pętli
Składnia stylu C dla pętli ma następującą postać:
for ((INITIALIZATION; TEST; STEP)) do done
Część
INITIALIZATION
jest wykonywana tylko raz po uruchomieniu pętli. Następnie oceniana jest część TESTOWA. Jeśli jest to fałsz, pętla for jest zakończona. Jeśli
TEST
jest prawdziwy, polecenia w treści pętli for są wykonywane, a część
STEP
jest aktualizowana.
W poniższym kodzie pętla gwiazdy inicjuje
i = 0
, a następnie przed każdą iteracją sprawdza, czy
i ≤ 10
. Jeśli true, drukuje bieżącą wartość i
i
przez 1 (
i++
), w przeciwnym razie pętla się kończy.
for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done
Pętla wykona iterację 1001 razy i wygeneruje następujące dane wyjściowe:
Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000
Złam i kontynuuj instrukcje
Do sterowania wykonywaniem pętli for można użyć instrukcji break i continu.
Oświadczenie o złamaniu
Instrukcja break kończy bieżącą pętlę i przekazuje kontrolę programu do instrukcji następującej po instrukcji zakończonej. Zwykle służy do zakończenia pętli, gdy spełniony jest określony warunek.
W poniższym przykładzie używamy instrukcji if, aby zakończyć wykonywanie pętli, gdy bieżący iterowany element będzie równy „Lithium”.
for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'
Element: Hydrogen Element: Helium All Done!
Kontynuuj Instrukcja
Instrukcja Kontynuacja kończy bieżącą iterację pętli i przekazuje kontrolę programu do następnej iteracji pętli.
W poniższym przykładzie wykonujemy iterację w zakresie liczb, a gdy bieżący element iteracji jest równy „2”, instrukcja Ciąg spowoduje, że wykonanie powróci do początku pętli i przejdzie do następnej iteracji.
for i in {1..5}; do if]; then continue fi echo "Number: $i" done
Number: 1 Number: 3 Number: 4 Number: 5
Przykłady Bash dla pętli
Zmienianie nazw plików ze spacjami w nazwie pliku
Poniższy przykład pokazuje, jak użyć pętli Bash for do zmiany nazwy wszystkich plików w bieżącym katalogu ze spacją w ich nazwach poprzez zamianę spacji na podkreślenie.
for file in *\ *; do mv "$file" "${file// /_}" done
Podzielmy kod wiersz po wierszu:
- Pierwszy wiersz tworzy pętlę for i iteruje listę wszystkich plików ze spacją w nazwie. Wyrażenie
*\ *tworzy listę. Drugi wiersz dotyczy każdego elementu listy i przenosi plik do nowego, zastępując spację znakiem podkreślenia (_). Część${file// /_}używa rozszerzenia parametru powłoki do zastąpienia wzorca w parametrze łańcuchem.doneoznacza koniec segmentu pętli.
Zmiana rozszerzenia pliku
Poniższy przykład pokazuje, jak użyć pętli Bash for do zmiany nazw wszystkich plików z rozszerzeniem.jpeg w bieżącym katalogu, zastępując rozszerzenie pliku z.jpeg na.jpg.
for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done
Przeanalizujmy kod linia po linii:
- Pierwszy wiersz tworzy pętlę for i przechodzi przez listę wszystkich plików kończących się na „.jpeg”. Drugi wiersz dotyczy każdej pozycji na liście i przenosi plik do nowej, zastępując „.jpeg” na „.jpg”.
${file%.jpeg}aby usunąć część „.jpeg” z nazwy pliku przy użyciu rozwinięcia parametrów powłoki wskazuje koniec segmentu pętli.
Wniosek
Do tej pory powinieneś dobrze rozumieć, jak korzystać z pętli bash dla iteracji po listach.
terminal pętli bashJak uruchomić Bash w systemie Ubuntu na Windows 10
Włączenie podsystemu Windows w Linuksie pozwoli na uruchomienie Bash w systemie Ubuntu na Windows 10, skrypty Bash , Narzędzia Linuksa do wiersza poleceń, pierwsze narzędzia w Linuksie.
Tablice Bash
Tablice są jedną z najczęściej używanych i podstawowych struktur danych. W tym artykule omówimy tablice Bash i wyjaśnimy, jak ich używać w skryptach Bash.
Bash while loop
Pętle są jedną z podstawowych koncepcji języków programowania. Pętle są przydatne, jeśli chcesz wielokrotnie uruchamiać serię poleceń. W tym samouczku wyjaśniono podstawy pętli while w języku Bash, a także instrukcje break i continu, które zmieniają przepływ pętli.







