Skip to main content

Jak pisać Bash WHILE-Loops

Bash - część #3 - pętla FOR / bash scripting - part #3 - FOR loop (EN subtitles) (Czerwiec 2026)

Bash - część #3 - pętla FOR / bash scripting - part #3 - FOR loop (EN subtitles) (Czerwiec 2026)
Anonim

Możesz wykonać sekwencję poleceń, wpisując je do pliku skryptu, a następnie uruchamiając go.

Plik skryptu jest po prostu plikiem tekstowym, zwykle z rozszerzeniem .SH, zawierającym sekwencję instrukcji, które mogą być również wykonywane z wiersza poleceń (powłoki).

Pętla Przykłady

Poniżej znajduje się przykład pętli while. Po uruchomieniu ten plik skryptowy wypisze numery od 1 do 9 na ekranie. Instrukcja while zapewnia większą elastyczność w określaniu warunków zakończenia niż pętla for.

Na przykład możesz uczynić poprzedni skrypt nieskończoną pętlą, pomijając instrukcję increment "((count ++))":

Instrukcja "sleep 1" wstrzymuje wykonanie na 1 sekundę w każdej iteracji. Użyj skrótu klawiaturowego Ctrl + C, aby zakończyć proces.

Możesz również utworzyć nieskończoną pętlę, umieszczając dwukropek jako warunek:

Aby użyć wielu warunków w pętli while, musisz użyć notacji podwójnego nawiasu kwadratowego:

W tym skrypcie zmienna "done" zostaje zainicjowana na 0, a następnie ustawiona na 1, gdy liczba osiągnie 5. Warunek pętli określa, że ​​pętla while będzie kontynuowana tak długo, jak "count" będzie mniejsza niż dziewięć, a "done" będzie równa do zera. Dlatego pętle kończą się, gdy liczba równa się 5.

"&&" oznacza logiczne "i" oraz "||" oznacza logiczny "lub".

Alternatywną notacją dla spójników "i" i "lub" w warunkach jest "-a" i "-o" z pojedynczymi nawiasami kwadratowymi. Powyższy warunek:

… może być przepisany jako:

Czytanie pliku tekstowego jest zwykle wykonywane z pętlą while. W poniższym przykładzie skrypt bash czyta zawartość linii po linii pliku o nazwie "inventory.txt:"

Pierwszy wiersz przypisuje nazwę pliku wejściowego do zmiennej "PLIK". Druga linia zapisuje "standardowe wejście" w deskryptorze pliku "6" (może to być dowolna wartość między 3 a 9). Robi się to po to, aby "standardowe wejście" mogło zostać przywrócone do deskryptora pliku "0" na końcu skryptu (patrz instrukcja "exec 0 W trzeciej linii plik wejściowy jest przypisany do deskryptora pliku" 0 ", który jest używany dla standardowego wejścia Instrukcja "czytaj" odczytuje wiersz z pliku w każdej iteracji i przypisuje go do zmiennej "line1".

Aby przedwcześnie zakończyć pętlę while, możesz użyć instrukcji break w następujący sposób:

Instrukcja break pomija wykonanie programu do końca podczas pętli i wykonuje wszystkie instrukcje za nim. W tym przypadku wyrażenie "echo Zakończono".

Z kolei instrukcja continue pomija tylko pozostałą część instrukcji pętli while bieżącej iteracji i przeskakuje bezpośrednio do następnej iteracji:

W takim przypadku instrukcja "continue" jest wykonywana, gdy zmienna "count" osiągnie 5. Oznacza to, że następna instrukcja (echo "$ count") nie jest wykonywana w tej iteracji (gdy wartość "count" wynosi 5).