Menu
Coddy logo textTech

Pętla while

Część sekcji Podstawy ścieżki Terminal w Coddy. Lekcja 72 z 82.

Pętla for świetnie się sprawdza, gdy dokładnie wiesz, po których elementach iterować. Ale co, jeśli chcesz wykonywać pętlę, aż określony warunek się zmieni? Właśnie wtedy przydaje się pętla while.

Pętla while działa tak długo, jak jej warunek pozostaje prawdziwy. Oto jej podstawowa struktura:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

Ten skrypt wypisuje liczby od 1 do 5.

Pętla sprawdza, czy count jest mniejsze lub równe 5. Jeśli tak, wykonuje treść pętli, zwiększa licznik za pomocą $((...)) do wykonywania działań arytmetycznych i sprawdza ponownie.

Gdy count osiągnie 6, warunek stanie się fałszywy i pętla się zatrzyma.

Pętle while sprawdzają się doskonale, gdy nie wiesz z góry, ilu iteracji potrzebujesz. Na przykład możesz prosić o dane wejściowe, dopóki użytkownik nie wpisze „quit”:

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

Uważaj na pętle while. Jeśli warunek nigdy nie stanie się fałszywy, pętla będzie działać bez końca.

Zawsze upewnij się, że coś wewnątrz pętli ostatecznie zmienia warunek, na przykład zwiększa licznik lub aktualizuje zmienną na podstawie danych wprowadzonych przez użytkownika.

challenge icon

Wyzwanie

Łatwy

Utwórz skrypt powłoki o nazwie counter.sh, który używa pętli while do wypisywania liczb od 1 do 4.

Twój skrypt powinien:

  1. Zaczynać się od wiersza shebang (#!/bin/bash)
  2. Tworzyć zmienną o nazwie num z wartością początkową 1
  3. Używać pętli while, która działa tak długo, jak num jest mniejsze lub równe 4
  4. Wewnątrz pętli wypisywać bieżącą liczbę w formacie: Number: [num]
  5. Zwiększać num o 1 po każdej iteracji, używając $((num + 1))

Ustaw skrypt jako wykonywalny i uruchom go. Wynik powinien być następujący:

Number: 1
Number: 2
Number: 3
Number: 4

Podpowiedź: Użyj -le do porównania „mniejsze lub równe”. Pamiętaj, aby zwiększać licznik wewnątrz pętli za pomocą num=$((num + 1)), aby uniknąć nieskończonej pętli. Zakończ pętlę while słowem done.

Spróbuj swoich sił

Terminal
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Terminal