Pętle bash dogłębnie

Pętle bash dogłębnie
Pętla składa się z jednego lub więcej poleceń, które wykonują wielokrotnie, aż do spełnienia stanu. Aby tak się stało, polecenia muszą być w konstrukcji. Konstrukt i jego polecenia tworzą polecenie złożone. Komenda bash wychodzi z zera, jeśli nie było problemu. Z drugiej strony wychodzi z liczbą większą niż zero, jeśli wystąpił problem lub problem. Status wyjścia złożonego polecenia jest status jego ostatniego polecenia.

Aby zrozumieć ten artykuł, czytelnik powinien już znać proste polecenia bash. Wszelkie niepotrzebne polecenie Bash użyte w tym artykule jest wyjaśnione. Nie zapominaj, że polecenia BASH można zapisać w pliku tekstowym, a plik tekstowy może uruchomić poprzez wpisanie nazwy pliku (poprzedzonego ścieżką) na terminalu, a następnie naciśnięcie Enter. Nie zapomnij także pozwolić sobie na uruchomienie pliku z czymś takim:

sudo chmod +x

Treść artykułu

  • Podstawy pętli bash
  • BASH BREAK I INT INDY Polecenia
  • Przydatne przykłady pętli
  • Wniosek

Podstawy pętli bash

Bash do/gotów pętlę
Rozważ następujący kod:

Niech n = 0
do [„$ n” -eq 5]; Do
Echo $ n
((++ n))
zrobione

Wyjście to:

0
1
2
3
4

Po rozpoczęciu programu zmienna n jest zadeklarowana, a zero przypisuje się do niego. Dwie polecenia przed „gotowym” są wykonywane 5 razy. ((++ n)) przyrosty n przez 1 dla każdej iteracji. Zwróć uwagę na pozycje zarezerwowanych słów „aż”, „do” i „gotowe”. Dwie polecenia są powtarzane, aż do stanu [„$ n” -eq 5]. W stanie „-eq” oznacza „równe”. Warunkiem jest to, że wartość n jest równa 5. Zauważ, że echem wartości zaczynają się od 0 do 4. Wynika to z faktu, że dla każdej iteracji warunek konstruktu jest sprawdzany, zanim ciało (dwa polecenia) konstrukcji zostanie wykonane. Jeśli warunek jest fałszywy, ciało nie zostanie wykonane. Zarezerwowane słowo „gotowe” powinno być zawsze wpisane w nowej linii.

Składnia dla pętli THE/GOD to:

aż do przeprowadzania testów; wykonują konsekwencje; zrobione

Drugi półklon nie jest konieczny, jeśli zarezerwowane słowo „wykonane” jest wpisane w nowej linii.

Jeśli warunek wychodzi z zero, co oznacza prawdziwe, ciało pętli jest wykonywane. Jeśli warunek wychodzi z liczbą większą niż zero, co oznacza fałszywe, ciało pętli nie jest wykonywane.

Bash While/Done Loop
Ta pętla jest podobna do pętli do/zrobionej, z tym wyjątkiem, że warunek musi zostać ponownie wyformowany. Obie konstrukty używają słowa zarezerwowanego „do”. Poniższy kod daje to samo wyjście, co wcześniej:

Niech n = 0
podczas gdy [„$ n” -lt 5]; Do
Echo $ n
((++ n));
zrobione

W stanie w kodzie „-LT” oznacza „mniej niż”. Składnia dla pętli While/Gan to:

podczas gdy komandary testowe; wykonują konsekwencje; zrobione

Bash for/Done Loop
Istnieją dwie składni dla pętli „for”, które są:

dla ((expr1; expr2; expr3)); DO Polecenia; zrobione

I

dla imienia [[w [słowa…]]; ] zrobić polecenia; zrobione

Poniższy kod wykorzystuje pierwszą składnię do uzyskania tego samego wyniku, co powyżej:

dla ((n = 0; n < 5; ++n)); do
Echo $ n
zrobione

W ((polecenie złożone pierwsze wyrażenie inicjuje zmienną N do zera. Kolejnym wyrażeniem jest warunek pobytu. Ostatnim wyrażeniem w poleceniu złożonym podwójnych nawiasów jest wyrażenie przyrostowe. Następnie jest ciało, które może składać się z więcej niż jednego polecenia, a następnie „gotowe”.

Druga składnia jest najlepiej używana z tablicą - patrz poniżej.

BASH BREAK I INT INDY Polecenia

przerwa
Wszystkie iteracje (powtarzające się wykonywanie ciała) przeznaczone do pętli niekoniecznie można wykonać. Polecenie Break można użyć do zatrzymania pozostałych iteracji. W poniższym kodzie iteracje zatrzymują się tuż po n jest równe 2.

dla ((n = 0; n < 5; ++n)); do
Echo $ n
if ((n == 2)); Następnie
przerwa
fi
zrobione

Wyjście to:

0
1
2

W tej pętli miały miejsce trzy iteracje.

Kontynuować
Iterację można pominąć za pomocą polecenia Kontynuuj. Poniższy kod to ilustruje:

dla ((n = 0; n < 5; ++n)); do
if ((n == 2)); Następnie
Kontynuować
fi
Echo $ n
zrobione

Wyjście to:

0
1
3
4

Iteracja do wyświetlania 2 została pominięta.

Polecenia przerwy i kontynuowania można również używać w do/gotowych i while/wykonanych pętlach.

Przydatne przykłady pętli

aż do/wykonać przykład pętli
Polecenie utworzenia pustego pliku tekstowego jest dotknięte. Poniższy skrypt utworzy puste pliki tekstowe w bieżącym katalogu roboczym, dopóki liczba utworzonych plików wynosi 4:

Niech i = 1
file = "myfile"
do [$ i -eq 5]; Do
filename = "$ plik $ i.tekst"
Dotknij nazwy pliku $
((++ i))
zrobione

Nazwy utworzonych plików powinny być myfile1.TXT, myfile2.TXT, myfile3.txt i myfile4.tekst.

Jedyny półklon w kodzie można pominąć, jeśli „do” zostanie wpisany w następnym wierszu.

While/wykonany przykład pętli
Poleceniem utworzenia pustego katalogu jest mkdir. Poniższy skrypt utworzy puste katalogi w bieżącym katalogu roboczym, dopóki liczba utworzonych katalogów wyniesie 4:

i = 1
dir = „mydir”
podczas gdy [$ i -lt 5]; Do
dirname = "$ dir $ i"
mkdir $ dirname
((++ i))
zrobione

Nazwa stworzonych katalogów powinna być mydir1, mydir2, mydir3 i mydir4.

Jedyny półklon w kodzie można pominąć, jeśli „do” zostanie wpisany w następnym wierszu.

dla przykładu pętli
Druga składnia dla wyżej wspomnianej powyżej pętli to:

dla imienia [[w [słowa…]]; ] zrobić polecenia; zrobione

Ta składnia jest lepiej używana z listą. Mówiąc prosto, składnia to:

dla zmiennej na liście; DO Polecenia; zrobione

Lista może być tablicą. Poniższe polecenie odczytuje wiersz wejściowy tekstu z terminala do tablicy ARR:

Przeczytaj ARR

W miarę uruchomienia skryptu, gdy osiągnie to polecenie, zatrzyma się (z migającym kursorem), aby użytkownik mógł wprowadzić wejście. Jeśli użytkownicy typu:

raz Dwa Trzy

W jednej linii i wchodzących naciskach, wówczas pierwszy element tablicy miałby słowo „jeden”, drugi miałby słowo „dwa”, a trzeci miałby „trzy”. Należy zauważyć, że wartości wejściowe zostały oddzielone przez przestrzenie.

Poniższy kod używa drugiej składni dla pętli do odczytu i wyświetlania wejścia do skryptu:

echo „Wpisz wartości i naciśnij Enter:”
Przeczytaj ARR
dla var in $ arr; Do
Echo $ var
zrobione

Jeśli dane wejściowe brzmiało:

raz Dwa Trzy

Wtedy wyjście byłoby:

jeden
dwa
trzy

Jedyny półklon w kodzie można pominąć, jeśli „do” zostanie wpisany w następnym wierszu.

Polecenie Bash Select

Polecenie Select nie jest tak naprawdę pętlą. Obejmuje to jednak iterację, której programista nie jest kodowany. Mówiąc prosto, składnia polecenia Wybierz:

Wybierz element w [Lista]
Do
[polecenia]
zrobione

Tutaj „Wybierz”, „in”, „do” i „gotowe” to zarezerwowane słowa. Jednym użyciem polecenia Select jest wyświetlanie elementów z listy do terminala. Poniższy skrypt ilustruje to:

Wybierz przedmiot w bananach, cytrynie, pomarańczowej, gruszce, ananasa
Do
przerwa
zrobione

Zwróć uwagę na użycie polecenia Break. Wyjście to:

1) banan,
2) cytryna,
3) Pomarańczowy,
4) Gruszka,
5) ananas
#?

Lista składa się z wartości banana, cytryny, pomarańczy, gruszki i ananasa. Te wartości zostały wyświetlone i ponumerowane. Symbol "#?”(I migający kursor obok) spodziewa się, że użytkownik wpisuje coś i naciśnij klawisz Enter. Wpisz wszystko, a następnie naciśnij klawisz Enter i wreszcie kończy wykonywanie skryptu.

Zauważ, że lista została wyświetlona jako menu, ponumerowane dla wyjścia. Dzięki temu użytkownik może wybrać element w menu, wpisując odpowiedni numer, obok „#?”, A następnie naciśnij klawisz Enter. Poniższy skrypt ilustruje, w jaki sposób Orange jest wybierany, wpisując numer 3:

Wybierz przedmiot w bananach, cytrynie, pomarańczowej, gruszce, ananasa
Do
Echo $ Odpowiedz
przerwa
zrobione

Wyświetlacz wyjściowy to:

#? 3
Następnie
3

Wniosek

Pętla w Bash jest konstruktem; Konstrukt to polecenie złożone. Ciało konstruktu ma co najmniej jedno polecenie. Na dzień dzisiejszy Bash ma tylko trzy pętle, które są aż do/gotowe, a/gotowe, i na/gotowe. Każda pętla używa zarezerwowanego słowa „zrób”. Po wpisaniu warunku „do” powinno być poprzedzone przez „;” lub być wpisane w następnym wierszu kodu. Każda pętla wymaga stanu. Do/Done/While/wykonane pętle są podobne. Główna różnica występuje podczas kodowania stanu.

Polecenie Select jest poleceniem złożonym, ale tak naprawdę nie jest pętlą. Pozwala użytkownikowi wybrać element z listy menu, gdy skrypt działa interaktywnie.

Polecenia przerwy i kontynuowania mogą być używane w pętli. Polecenie Break można użyć do zatrzymania iteracji. Z drugiej strony polecenie kontynuowania może być użyte do pominięcia iteracji.

To wszystko, co ma pętle wściekłe. Pozostała funkcja do zbadania jest „jak kodować warunki?". Zasługuje to na zupełnie inny artykuł i nie można go uwzględnić w tym. Zobacz artykuł na tej stronie, zatytułowany „Bash Warunek szczegółowo”, na temat kodowania warunków.

Chrys