logo

Instrukcje zapętlające | Skrypt powłoki

Instrukcje zapętlające w skryptach powłoki: Istnieją w sumie 3 instrukcje pętlowe, których można używać w programowaniu w bashu

Spis treści



Aby zmienić przebieg instrukcji pętli, używane są dwa polecenia:

  1. przerwa
  2. Kontynuować

Ich opisy i składnia są następujące:

Instrukcja `while' w skrypcie powłoki w systemie Linux

Tutaj polecenie jest oceniane i na podstawie wynikowej pętli zostanie wykonane, jeśli polecenie zostanie podniesione do wartości false, pętla zostanie zakończona To.



#/bin/bash while  do       done>

Implementacja pętli „While” w skrypcie powłoki.

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim looping.sh>

Możesz zastąpić plik Looping.sh żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.



chmod +x looping.sh>

#/bin/bash

a=0

# lt jest mniejsze niż operator

int ciąg znaków Java

#Iteruj pętlę, aż liczba będzie mniejsza niż 10

podczas gdy [ $a -lt 10 ]
Do
# Wydrukuj wartości
echo $a
# zwiększ wartość
a=`wyrażenie $a + 1`
zrobione

Wyjście:

Podczas gdy pętla w systemie Linux

Podczas gdy Loop w systemie Linux

Wyjaśnienie:

  • #/bin/bash> : Określa, że ​​skrypt powinien być interpretowany przy użyciu powłoki Bash.
  • a=0> : Inicjuje zmiennąa>z wartością 0.
  • while [ $a -lt 10 ]> : Inicjuje pętlę while, która trwa tak długo, jak wartośća>jest mniejsza niż 10.
  • do> : Zaznacza początek treści pętli.
  • echo $a> : Drukuje bieżącą wartośća>konsola.
  • a=> wyrażenie $a + 1 : Zwiększa wartośća>o 1. Theexpr>polecenie służy do wyrażeń arytmetycznych.
  • done> : Oznacza koniec pętli.

Instrukcja „for” w skrypcie powłoki w systemie Linux

Pętla for działa na listach elementów. Powtarza zestaw poleceń dla każdego elementu na liście.
Tutaj var jest nazwą zmiennej, a słowo1 do słowaN to ciągi znaków oddzielonych spacjami (słowa). Za każdym razem, gdy wykonywana jest pętla for, wartość zmiennej var jest ustawiana na następne słowo na liście słów, od słowa 1 do słowa N.

Składnia:

#/bin/bash for in  do       done>

Implementacja pętli „for” z instrukcją „break” w skrypcie powłoki.

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim for.sh>

Możesz zastąpić for.sh żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.

chmod +x for.sh>

#/bin/bash

#Początek pętli for

dla a w 1 2 3 4 5 6 7 8 9 10
Do

# jeśli a jest równe 5, przerwij pętlę
jeśli [ $a == 5 ]
Następnie
przerwa
Być

# Wydrukuj wartość
echo Iteracja nr $a
zrobione

Wyjście:

Instrukcja Break w for Loop w systemie Linux

Instrukcja Break w for Loop w systemie Linux

Wyjaśnienie:

  • #/bin/bash>: Określa, że ​​skrypt powinien być interpretowany przy użyciu powłoki Bash.
  • for a in 1 2 3 4 5 6 7 8 9 10>: Inicjuje pętlę for, która iteruje po wartościach od 1 do 10, przypisując każdą wartość do zmienneja>w każdej iteracji.
  • do>: Zaznacza początek treści pętli.
  • if [ $a == 5 ]>: Sprawdza, czy bieżąca wartośća>jest równe 5.
    • then>: Zaznacza początek bloku warunkowego, który ma zostać wykonany, jeśli warunek jest spełniony.
      • break>: Wychodzi z pętli, jeśli warunek jest spełniony.
    • fi>: Zaznacza koniec bloku warunkowego.
  • echo 'Iteration no $a'>: Drukuje komunikat wskazujący numer bieżącej iteracji.
  • done>: Oznacza koniec pętli.

Skrypt tworzy pętlę for, która iteruje po wartościach od 1 do 10. Podczas każdej iteracji sprawdza, czy wartośća>jest równa 5. Jeśli tak, pętla jest opuszczana za pomocąbreak>oświadczenie. W przeciwnym razie wypisuje komunikat wskazujący numer bieżącej iteracji. Pętla trwa do momentu zakończenia wszystkich iteracji lub napotkania instrukcji break.

Implementacja pętli „for” z instrukcją „kontynuuj” w skrypcie powłoki.

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim for_continue.sh>

Możesz zastąpić for_continue.sh żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.

chmod +x for_continue.sh>

#/bin/bash

dla a w 1 2 3 4 5 6 7 8 9 10
Do

# jeśli a = 5, kontynuuj pętlę i
# nie przechodź do linii 8

główny program w Javie

jeśli [ $a == 5 ]
Następnie
Kontynuować
Być
echo Iteracja nr $a
zrobione

Wyjście:

kontynuuj instrukcję w pętli for w systemie Linux

kontynuuj instrukcję w pętli for w systemie Linux

Wyjaśnienie:

co robi Ravel w Pythonie
  • #/bin/bash> : Określa, że ​​skrypt powinien być interpretowany przy użyciu powłoki Bash.
  • for a in 1 2 3 4 5 6 7 8 9 10> : Inicjuje pętlę for, która iteruje po wartościach od 1 do 10, przypisując każdą wartość do zmienneja>w każdej iteracji.
  • do> : Zaznacza początek treści pętli.
  • if [ $a == 5 ]> : Sprawdza, czy bieżąca wartośća>jest równe 5.
    • then> : Zaznacza początek bloku warunkowego, który ma zostać wykonany, jeśli warunek jest spełniony.
      • continue> : Pomija resztę treści pętli i przechodzi do następnej iteracji, jeśli warunek jest spełniony.
    • fi> : Zaznacza koniec bloku warunkowego.
  • echo 'Iteration no $a'> : Drukuje komunikat wskazujący numer bieżącej iteracji. Ta linia jest pomijana ifa>jest równa 5 ze względu nacontinue>oświadczenie.
  • done> : Oznacza koniec pętli.

Skrypt tworzy pętlę for, która iteruje po wartościach od 1 do 10. Podczas każdej iteracji sprawdza, czy wartośća>jest równa 5. Jeśli tak, pętla przechodzi do następnej iteracji bez wykonywania pozostałych instrukcji w treści pętli. W przeciwnym razie wypisuje komunikat wskazujący numer bieżącej iteracji. Pętla trwa aż do zakończenia wszystkich iteracji.

Instrukcja „until” w skrypcie powłoki w systemie Linux

Pętla dopóki jest wykonywana tyle razy, ile warunek/polecenie ma wartość fałszywą. Pętla kończy się, gdy warunek/polecenie stanie się prawdziwy.

Składnia:

#/bin/bash until  do       done>

Implementacja pętli „until” w skrypcie powłoki

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim until.sh>

Możesz wymienić do. sh z żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.

chmod +x until.sh>

#/bin/bash

a=0

# -gt jest większe niż operator
#Iteruj pętlę, aż a będzie większe niż 10

do [ $a -gt 10 ]
Do

# Wydrukuj wartości
echo $a

# zwiększ wartość
a=`wyrażenie $a + 1`
zrobione

Wyjście:

Pętla Unitl w Linuksie

Do pętli w systemie Linux

Wyjaśnienie:

  • #/bin/bash> : Określa, że ​​skrypt powinien być interpretowany przy użyciu powłoki Bash.
  • a=0> : Inicjuje zmiennąa>z wartością 0.
  • until [ $a -gt 10 ]> : Inicjuje pętlę dopóki, która trwa tak długo, jak wartośća>nie jest większa niż 10.
  • do> : Zaznacza początek treści pętli.
  • echo $a> : Drukuje bieżącą wartośća>konsola.
  • a=> wyrażenie $a + 1 : Zwiększa wartośća>o 1. Theexpr>polecenie służy do wyrażeń arytmetycznych.
  • done> : Oznacza koniec pętli.

Notatka: W skryptach powłoki rozróżniana jest wielkość liter, co oznacza, że ​​podczas pisania skryptów należy przestrzegać właściwej składni.

Przykłady instrukcji zapętlających

1. Iteracja po kolorach za pomocą pętli For

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim color.sh>

Możesz zastąpić color.sh żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.

chmod +x color.sh>

#/bin/bash

KOLORY=czerwony zielony niebieski

# pętla for trwa do momentu odczytania wszystkich wartości z listy KOLORY

dla KOLOR w $COLORS
Do
echo KOLOR: $KOLOR
zrobione

Wyjście:

Dopóki w Linuksie

Dopóki w Linuksie

Wyjaśnienie:

  • Inicjalizacja kolorów:
    • COLORS='red green blue'>: Inicjuje zmienną o nazwieCOLORS>z oddzieloną spacjami listą wartości kolorów (czerwony, zielony i niebieski).
  • Dla iteracji pętli:
    • for COLOR in $COLORS>: Inicjuje pętlę for, która iteruje po każdej wartości w plikuCOLORS>zmienny.
      • Ciało pętli:
        • echo 'COLOR: $COLOR'>: Drukuje komunikat dla każdego koloru, wyświetlając bieżącą wartość koloru.
    • Pętla trwa do momentu przetworzenia wszystkich wartości znajdujących się w plikuCOLORS>zmienny.

Ten przykład ilustruje prostą pętlę for w języku Bash, iterującą po liście kolorów przechowywanych w plikuCOLORS>zmienny. Pętla drukuje komunikat dla każdego koloru, wskazując aktualnie przetwarzany kolor. Pętla wykonuje iterację aż do wyczerpania wszystkich wartości kolorów.

2. Tworzenie nieskończonej pętli za pomocą while true w skrypcie powłoki

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim infinite.sh>

Możesz zastąpić nieskończony.sh żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.

chmod +x infinite.sh>

#/bin/bash

Java pobiera aktualną datę

choć prawdziwe
Do

# Polecenie do wykonania
# sen 1 wskazuje, że śpi przez 1 sekundę
echo Cześć, jestem pętlą nieskończoności
spać 1
zrobione

Wyjście:

nieskończona pętla w Linuksie

nieskończona pętla w Linuksie

Wyjaśnienie:

Nieskończona struktura pętli:

  • while true>: Inicjuje pętlę while, która trwa w nieskończoność jako warunektrue>jest zawsze prawdą.
    • Ciało pętli:
      • echo 'Hi, I am infinity loop'>: Drukuje komunikat wskazujący, że skrypt znajduje się w nieskończonej pętli.
      • sleep 1>: Wstrzymuje wykonywanie pętli na 1 sekundę przed następną iteracją.
  • Pętla działa w nieskończoność, wielokrotnie wykonując polecenia zawarte w jej treści.

Ten przykład ilustruje tworzenie nieskończonej pętli przy użyciu konstrukcji while true w Bash. Pętla w sposób ciągły wypisuje komunikat wskazujący jej status jako pętli nieskończonej i zawiera polecenie uśpienia 1, powodując jednosekundowe opóźnienie pomiędzy iteracjami. Nieskończone pętle są często używane w procesach, które muszą działać w sposób ciągły, aż do ręcznego przerwania.

zeenat aman aktor

3. Interaktywna pętla potwierdzania nazwy

Najpierw tworzymy plik za pomocą edytora tekstu w systemie Linux. W tym przypadku używamy edytora `vim`.

vim name.sh>

Możesz zastąpić name.sh żądaną nazwą.

Następnie sprawiamy, że nasz skrypt jest wykonywalny za pomocą polecenia `chmod` w systemie Linux.

chmod +x name.sh>

#/bin/bash

PRAWIDŁOWY=n
podczas gdy [ $POPRAWNE == n ]
Do

# pętla kończy się, gdy wpiszesz y, tj. gdy Twoje imię i nazwisko jest prawidłowe
# -p oznacza monit z prośbą o wprowadzenie danych

czytaj -p Wpisz swoje imię i nazwisko: IMIĘ
read -p Czy ${NAME} jest poprawne? PRAWIDŁOWY
zrobione

Wyjście:

Interaktywny skrypt w systemie Linux

Interaktywny skrypt w systemie Linux

Wyjaśnienie:

  • Inicjalizacja:
    • CORRECT=n>: Inicjuje zmienną o nazwieCORRECT>z wartością n. Ta zmienna służy do sterowania pętlą.
  • Pętla interaktywna:
    • while [ '$CORRECT' == 'n' ]>: Inicjuje pętlę while, która trwa tak długo, jak wartośćCORRECT>jest równe n.
      • Ciało pętli:
        • read -p 'Enter your name:' NAME>: Monituje użytkownika o wprowadzenie swojego imienia i nazwiska i zapisuje wprowadzone dane w plikuNAME>zmienny.
        • read -p 'Is ${NAME} correct? ' CORRECT>: Prosi użytkownika o potwierdzenie, czy wprowadzona nazwa jest poprawna i aktualizujeCORRECT>odpowiednio zmienna.
    • Pętla trwa, dopóki użytkownik nie wprowadzi y (wskazując poprawną nazwę).

Ten przykład ilustruje interaktywną pętlę, która monituje użytkownika o wprowadzenie swojego imienia i nazwiska, a następnie prosi o potwierdzenie. Pętla trwa do momentu, aż użytkownik potwierdzi poprawność wprowadzonej nazwy wpisując y. Pętla wykorzystuje ` read> `>polecenie wprowadzania danych przez użytkownika i aktualizuje plik ` CORRECT> `>zmienna sterująca przepływem w pętli.

Wniosek

W tym artykule omówiliśmy instrukcje zapętlone w skryptach Bash, omawiającwhile>,for>, Iuntil>pętle. Wprowadza użyciebreak>Icontinue>instrukcje modyfikujące zachowanie pętli. Praktyczne przykłady ilustrują implementację pętli, w tym iterację po wartościach kolorów, tworzenie nieskończonych pętli i budowanie interaktywnej pętli do sprawdzania poprawności danych wejściowych użytkownika. Przewodnik oferuje zwięzłe, ale pouczające źródło wiedzy na temat zrozumienia i wykorzystania konstrukcji pętli w skryptach Bash.