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))
doneTen 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"
doneUważ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.
Wyzwanie
ŁatwyUtwó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:
- Zaczynać się od wiersza shebang (
#!/bin/bash) - Tworzyć zmienną o nazwie
numz wartością początkową1 - Używać pętli while, która działa tak długo, jak
numjest mniejsze lub równe 4 - Wewnątrz pętli wypisywać bieżącą liczbę w formacie:
Number: [num] - Zwiększać
numo 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: 4Podpowiedź: Użyj
-ledo 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łowemdone.
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Katalogi
Utwórz katalogSkopiuj katalogPrzenieś i zmień nazwę kataloguUsuń katalogPodsumowanie — operacje na katalogach7Zawartość plików
Początek i koniecLiczba słówPolecenie sortPolecenie uniqPodstawy grepgrep z opcjamiPowtórka – detektyw tekstu10Projekt analizatora logów
Przegląd projektuPrzeglądanie pliku logów2Nawigacja
Wyświetlanie bieżącego kataloguWyświetlanie plikówZmiana kataloguŚcieżki bezwzględne i względneKatalog domowy i głównyPowtórka — znajdź drogę8Przekierowywanie
Standardowe wyjścieNadpisywanie plikuDopisywanie do plikuStandardowe wejścieStandardowe wyjście błędówPodsumowanie — tworzenie dziennika3Pliki
Utwórz plikOdczytaj plikSkopiuj plikPrzenieś i zmień nazwę plikuUsuń plikPodsumowanie — operacje na plikach6Symbole wieloznaczne i wzorce
Symbol wieloznaczny gwiazdkaSymbol wieloznaczny znak zapytaniaSymbole wieloznaczne w nawiasachŁączenie symboli wieloznacznychPowtórka — operacje selektywne9Potoki
Czym jest potokŁączenie dwóch poleceńŁączenie wielu poleceńPotok z grepPodsumowanie – potok danychPoćwicz samodzielnie: Edytor online Terminal