Pętla while
Część sekcji Podstawy ścieżki Terminal w Coddy. Lekcja 72 z 82.
Pętla for sprawdza się świetnie, gdy dokładnie wiesz, po jakich elementach iterować. Ale co, jeśli chcesz zapętlać się, aż zmieni się określony warunek? 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 obliczeń arytmetycznych i sprawdza ponownie.
Gdy count osiągnie 6, warunek staje się fałszywy i pętla się zatrzymuje.
Pętle while sprawdzają się doskonale, gdy nie wiesz z góry, ile 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 w końcu zmienia warunek, na przykład przez zwiększenie licznika lub zaktualizowanie zmiennej 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 wypisania liczb od 1 do 4.
Twój skrypt powinien:
- Zaczynać się od wiersza shebang (
#!/bin/bash) - Utworzyć zmienną o nazwie
numz początkową wartością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))
Nadaj skryptowi uprawnienia do wykonywania 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