Bash dla przykładów pętli

Bash dla przykładów pętli
Pętle są bardzo istotną częścią każdego rodzaju języków programowania lub skryptowych. Jak każde inne standardowe programowanie, pętle są używane w programowaniu BASH do wykonywania powtarzających się zadań. Spośród trzech rodzajów pętli (podczas gdy, podczas), dla pętli jest bardzo przydatne do wykonywania różnych rodzajów zadań iteracyjnych. Podstawowe zastosowania pętli „for” pokazano tutaj. Ale pętla „dla” można użyć do wykonywania zadań na poziomie zaawansowanym. Jeśli chcesz wiedzieć więcej zastosowań do pętli, musisz przeczytać ten samouczek. 12 Najbardziej przydatne przykłady „For” Pętla są pokazane w tym samouczku, aby poznać inne konkretne zastosowania „do„ pętli w Bash.

Składnia:

Do pętli można używać na dwa sposoby w Bash. Jednym ze sposobów jest „in-in”, a innym sposobem jest składnia w stylu C. Obie składni pokazano poniżej.

dla zmiennych na liście
Do
Sprawozdania
zrobione
Lub
dla ((expression1; ekspresja 2; ekspresja3)))
Do
Sprawozdania
zrobione

Przykład-1: Aby pętla odczytać zmienną wejściową

Lista predefiniowanych ciągów lub tablicy można łatwo odczytać za pomocą pętli „dla”, która jest pokazana w poprzednim samouczku dla pętli. W tym przykładzie można odczytać zawartość zmiennej wejściowej za pomocą „for” pętla. Utwórz plik o nazwie 'Forloop1.cii„Z następującym skryptem. Wartość wejściowa tekstu wielu słów zostanie pobrana po uruchomieniu skryptu. Tutaj pętla służy do podziału tekstu na słowa na podstawie białej przestrzeni i wydrukowania każdego słowa z pozycją.

Forloop1.cii

#!/bin/bash
echo „Wprowadź tekst wielu słów”
Przeczytaj tekst
i = 1
Dla Word in $ tekst
Do
echo "słowo nr $ i = $ Word"
((i = $ i+1))
zrobione

Wyjście:

Uruchom skrypt.

$ bash forloop1.cii

Tutaj pobrany jest tekst 5 słów, więc wydrukuje się pięć linii wyjściowych.

Przykład-2: dla pętli z instrukcją przerwy

Instrukcja „Break” jest używana wewnątrz ”dla„ pętli do zakończenia z pętli. Utwórz plik o nazwie 'Forloop2.cii' z następującym kodem. „Do” pętla jest używana tutaj do przeczytania listy czterech osób. Tutaj testowane są dwa warunki. Jeśli imienia osoby to 'Amir A kolor jest 'Niebieski' wtedy pętla zakończy się po wydrukowaniu imienia i koloru osoby. Wartości kolorów drugiej pętli będą wydrukowane do momentu dopasowania wartości koloru „niebieskiego”.

Forloop2.cii

na nazwisko w Watson Micheal Sinha Amir Lily
Do
Jeśli [$ name == 'amir']
Następnie
dla koloru w kolorze czerwonym zielonym niebieskim białym
Do
Jeśli [$ color == „niebieski”]
Następnie
echo „Ulubiony kolor $ nazwa to $ kolor”
przerwa
w przeciwnym razie
echo „Obecny kolor to $ kolor”
fi
zrobione
fi
zrobione

Wyjście:

Uruchom skrypt.

$ bash forloop2.cii

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Po pierwsze, drukowane są dwa kolory, „czerwony” i „zielony”. Kiedy pojawiła się wartość „niebieska”, wydrukowała nazwę i wartość koloru osoby i zakończyła z pętli dla instrukcji „Break”.

Przykład-3: dla pętli z instrukcją kontynuowania

Oświadczenie „Kontynuuj” jest używane wewnątrz „dla„ pętli ”do pominięcia dowolnego stwierdzenia na podstawie określonego warunku. Utwórz plik o nazwie „Forloop3.cii' z następującym skryptem. Tutaj zmienna nazwana Kursy $ służy do przypisania wartości tekstowej. Pętla „Do” służy do odczytania zmiennej, $ kursy. Wartość tekstu zostanie podzielona na podstawie przestrzeni i odczytana przez „dla„ pętli. Kiedy wartość „Oracle” jest dopasowana $ kurs wtedy wydrukuje „Oracle nie jest teraz dostępna”. W przypadku innych wartości „klasa $ kurs działa”. Kurs, który nie jest dostępny.

Forloop3.cii

#!/bin/sh
kursy = "Java PHP Oracle VB.internet"
na kursy $
Do
Jeśli [$ kurs == 'Oracle']
Następnie
Echo „$ kurs nie jest teraz dostępny”
Kontynuować
fi
Echo „Klasa $ kurs działa”
zrobione

Wyjście:

Uruchom skrypt.

$ bash forloop3.cii

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład-4: Używanie wyjścia polecenia jako listy

Wszelkie wyjście polecenia Bash można użyć w „for Loop za pomocą backtick (”). Utwórz plik o nazwie „Forloop4.cii' z następującym skryptem. Tutaj, „ls *.tekst' Polecenie jest używane w pętli. To polecenie wygeneruje listę pliku tekstowego z bieżącego katalogu. Pętla „dla” iterowuje każdą nazwę pliku z wyjścia polecenia i przechowuje ją w zmiennej $ nazwa pliku które wydrukują później. Tutaj, $ n Zmienna służy do wyświetlania numeru pliku.

Forloop4.cii

n = 1
dla nazwy pliku w „LS *.tekst'
Do
echo „plik no-$ n: $ nazwa pliku”
((n ++))
zrobione

Wyjście:

Uruchom skrypt.

$ bash forloop1.cii

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład-5: Aby pętla przeczytać zakres

Pętla „Do” może być używana do odczytu zakresu danych. Poniższy przykład odczytał zakres znaku i wyszukiwanie każdego znaku istnieje w tekście lub nie. Utwórz plik o nazwie „Forloop5.cii' i dodaj następujący skrypt. Tutaj zasięg [a-z] jest używany w „for„ Loop. Oznacza to, że pętla „dla” będzie iterowana przez 26 razy dla każdej litery. Każda postać jest wyszukiwana w tekście $ za pomocą polecenia „AWK”. Jeśli znaleziono jakakolwiek postać, będzie przechowywać wartość w wyniku $. Następny. Wynik $ jest sprawdzany pod kątem dowolnej treści. Jeśli nie jest pusty, wiadomość będzie wydrukowana.

Forloop5.cii

Text = "Bash Scripting Language"
dla C w A… z
Do
wynik = 'printf "$ text" | awk "/$ c/" '
Jeśli [[wynik $ != ""]]
Następnie
echo „$ c istnieje w tekście”
fi
zrobione

Uruchom skrypt.

$ bash forloop5.cii

Tutaj alfabety, „B”, „L” i „S” znalezione w tekście „Bash Scripting Language”. Tak więc wydrukowane są trzy linie wyjściowe.

Przykład-6: Aby pętli odczytać zakres z przyrostem

Przykład pokazuje, w jaki sposób możesz użyć „do” pętli, aby znaleźć wszystkie liczby równe w określonym zakresie. Utwórz plik o nazwie „Forloop6.cii' i dodaj następujący skrypt. Tutaj w pętli stosuje się zakres [2-20]. Pętla będzie iterowana 10 razy i wydrukuje liczbę na każdym kroku.

Forloop6.cii

Echo „Drukowanie wszystkich liczb równych od 1 do 20”
Dla n w 2… 20… 2
Do
echo -n „$ n”
zrobione
printf "\ ndone \ n"

Uruchom skrypt.

$ bash forloop6.cii

Wszystkie liczby parzyste w ciągu 2-20 są drukowane po uruchomieniu skryptu.

Przykład-7: Aby pętli działać z plikiem

Ten przykład pokazuje, w jaki sposób możesz „pętla” do odczytania listy określonego pliku. Utwórz plik o nazwie, „Forloop7.cii' i dodaj następujący skrypt. Tutaj pętla jest używana do listy wszystkich plików tekstowych z bieżącego katalogu i zastąp rozszerzenie pliku z '.txt „to”.Doc '.

Forloop7.cii

echo „Zastąpienie rozszerzenia pliku wszystkiego pliku tekstowego na plik DOC."
dla nazwy pliku w *.tekst; Do
mv "$ fileName" "$ nazwa pliku%.tekst.Doc "
zrobione
Echo „Zastąpienie odbywa się z powodzeniem”

Wyjście:

Utwórz najpierw plik tekstowy, jeśli nie ma pliku tekstowego w bieżącym katalogu. Tutaj plik tekstowy o nazwie „NewFile.txt 'jest tworzony za pomocą polecenia „cat”.

$ cat> Newfile.tekst

Uruchom skrypt wspomniany powyżej.

$ bash forloop7.cii

Następnie sprawdź rozszerzenie jest zmieniane lub nie za pomocą polecenia „LS”.

Przykład-8: dla pętli z poleceniem sekwencji

Poniższy przykład pokazuje, w jaki sposób możesz użyć ”SEQ„In” dla „pętli do wydrukowania listy numeru sekwencyjnego. Polecenie „SEQ” działa podobnie jak zakres z przyrostem. Utwórz plik o nazwie „Forloop8.cii' i dodaj następujący skrypt. Pętla wydrukuje liczby od 1 do 30, pomijając trzy liczbę każdego kroku.

Forloop8.cii

Echo „Numery drukowania przez pomijanie 3”
dla SQ w $ (SEQ 1 3 30)
Do
Echo „Numer sekwencji: $ sq”
zrobione

Wyjście:

Uruchom skrypt.

$ bash forloop8.cii

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Przykład-9: Używanie Infinite for Loop

Nieskończona pętla może być używana do wykonywania wszelkich powtarzalnych zadań wiele razy, aż pojawi się określony warunek. Utwórz plik o nazwie „Forloop9.cii' z następującym skryptem, aby sprawdzić użycie nieskończonej pętli. Tutaj w pętli nie jest zdefiniowane żadne warunki zakończenia. Pętla wyświetla menu 5 list do czasu naciśnięcia numeru 5. Wydrukuje konkretną wiadomość dla innych liczb od 1 do 4 i ponownie wyświetli menu.

Forloop9.cii

Do (( ; ; ))
Do
Echo ”1. Wydrukuj komunikat sukcesu "
Echo ”2. Wydrukuj wiadomość informacyjną "
Echo ”3. Wydrukuj wiadomość ostrzegawczą "
Echo ”4. Wydrukuj komunikat o błędzie "
Echo ”5. Wyjście"
echo -n "Wybierz dowolną liczbę z [1-5]:"
Przeczytaj odpowiedź
sprawa „$ odpowiedź” w
1) echo "pomyślnie ukończone.";;
2) echo „Nieprawidłowe wejście” ;;
3) echo „Twój komputer ma niską baterię” ;;
4) Echo „Złała liczba argumentów” ;;
5) Wyjście 0 ;;
*) echo „niewłaściwy wybór” ;;
esac
zrobione

Uruchom skrypt.

$ bash forloop9.cii

Tutaj 9 jest naciskany za pierwszym razem, który nie istnieje na liście. W przypadku tego wejścia jest drukowane „niewłaściwy wybór” i ponownie wyświetla menu. Następnie 1 jest naciskany i wyświetlał wiadomość „pomyślnie ukończona”. Następnie 5 jest naciskane do zakończenia programu.

Przykład-10: Korzystanie z pętli bez listy.

Pętla „dla” może być używana bez żadnej listy, tablicy lub wyjścia polecenia. Jak możesz użyć „dla” pętli do odczytania argumentów wiersza poleceń, jest pokazany w tym przykładzie. Utwórz plik o nazwie, „Forloop10.cii' i dodaj następujący skrypt. Pętla będzie się iterować na podstawie liczby argumentów wiersza poleceń. $ zmienna licznika służy do znalezienia każdego etapu pętli, która jest zwiększana o 1 na każdym etapie.

Forloop10.cii

licznik = 1
do tekstu
Do
Jeśli [$ Counter -eq 2]
Następnie
str = „Mój ulubiony kolor to”
Elif [$ Counter -eq 3]
Następnie
str = „Kocham”
w przeciwnym razie
str = „Lubię”
fi
echo „$ str $ tekst”
((licznik = $ licznik+1))
zrobione

Uruchom skrypt z wartościami argumentów wiersza poleceń.

$ bash forloop10.SH Ice Blue Programming

Skrypt wydrukował wiadomość „Lubię lody”, gdy licznik $ to 1, „moim ulubionym kolorem jest niebieski”, gdy licznik $ to 2 i „Uwielbiam programowanie”, gdy licznik $ to 3.

Przykład-11: Czytanie plików i katalogów za pomocą pętli

Do wydrukowania listy plików i folderów bieżącego katalogu można użyć?. Utwórz plik o nazwie 'Forloop11.cii'i dodaj następujący skrypt. Tutaj symbol „*” jest używany w „pętli” do odczytania plików i folderów bieżącego katalogu. Pętla odczytaj każdy plik lub nazwę folderu na każdym kroku i wydrukuj go w terminalu z miejscem „tab”.

Forloop11.cii

printf „Pinting plików i folderów bieżącego katalogu… \ n \ n”
dla listy w *
Do
printf "$ lista \ t"
zrobione
printf "\ n \ ndone \ n"

Uruchom skrypt.

$ bash forloop11.cii

Nazwy plików i folderów bieżącego katalogu roboczego są drukowane po uruchomieniu skryptu.

Przykład-12: Korzystanie z przecinka w stylu C Bash dla pętli

Styl c w stylu „for” jest również obsługiwany w Bash, a to „dla„ pętla ma trzy wyrażenia. Są to inicjalizacja, warunek zakończenia i przyrost lub zmniejszenie. Ale za pomocą przecinka (,) możesz zdefiniować wiele zmiennych inicjalizacji w BASH, które pokazano w tym przykładzie. Utwórz plik o nazwie ”Forloop12.cii' i dodaj następujący skrypt. Pętla zagnieżdżona jest używana w tym skrypcie. Dwie zmienne inicjalizacyjne, $ Team, I $ Jersey są zadeklarowane w pierwszej pętli „dla”. Pierwsza pętla zostanie zakończona, kiedy $ Team będzie więcej niż 2. Nie ma zmiennej inicjalizacji w wewnętrznej pętli i pętli wewnętrznej, gdy zostanie zakończone tam, gdzie $ Jersey jest więcej niż 3. $ Jersey jest ustawiony na 1 po zakończeniu wewnętrznej pętli iteracji. Zatem zewnętrzna pętla będzie iterowana przez 2 razy, a wewnętrzna pętla będzie iterowana 3 razy.

Forloop12.cii

dla ((zespół = 1, Jersey = 1; zespół <= 2 ; team++))
Do
dla ((; Jersey <= 3 ; jersey++))
Do
echo „Team No-$ Team, Jersey No-$ Jersey”
zrobione
Jersey = 1
zrobione

Uruchom skrypt.

$ bash forloop12.cii

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Wniosek:

W tym samouczku próbuje wyjaśnić wiele skutecznych zastosowań pętli „for”. Po ćwiczeniu powyższych przykładów, mam nadzieję, że czytelnicy otrzymają jasną wiedzę na temat „za” pętlę i 0able, aby właściwie używać tej pętli w skrypcie Bash.