Menu
Coddy logo textTech

Instrukcja warunkowa if

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

Jak dotąd Twoje skrypty wykonują każde polecenie od góry do dołu, nie podejmując żadnych decyzji. A co, jeśli chcesz, aby skrypt robił różne rzeczy w zależności od określonych warunków? Właśnie do tego służy instrukcja if.

Instrukcja if pozwala skryptowi podejmować decyzje. Sprawdza, czy warunek jest prawdziwy, a jeśli tak, wykonuje blok kodu. Oto podstawowa struktura:

#!/bin/bash
age=18
if [ $age -ge 18 ]; then
    echo "You are an adult"
fi

Warunek umieszcza się w nawiasach kwadratowych, ze spacjami wokół niego. Słowo kluczowe then oznacza początek kodu do wykonania, a fi (if zapisane wspak) kończy instrukcję.

Możesz też obsłużyć przypadek, gdy warunek jest fałszywy, używając else:

#!/bin/bash
age=15
if [ $age -ge 18 ]; then
    echo "You are an adult"
else
    echo "You are a minor"
fi

Typowe operatory porównania liczb to -eq (równe), -ne (nierówne), -gt (większe niż), -lt (mniejsze niż), -ge (większe lub równe) i -le (mniejsze lub równe). W przypadku ciągów znaków użyj = do sprawdzania równości i != do sprawdzania nierówności.

Pamiętaj, aby zawsze umieszczać spacje wewnątrz nawiasów i ujmować zmienne w cudzysłowy, aby uniknąć błędów związanych z pustymi wartościami.

challenge icon

Wyzwanie

Łatwy

Utwórz skrypt powłoki o nazwie check_score.sh, który używa instrukcji if do oceny wyniku testu.

Twój skrypt powinien:

  1. Zaczynać się od wiersza shebang (#!/bin/bash)
  2. Utworzyć zmienną o nazwie score z wartością 75
  3. Użyć instrukcji if, aby sprawdzić, czy wynik jest większy lub równy 70
  4. Jeśli warunek jest prawdziwy, wypisać: You passed!
  5. Jeśli warunek jest fałszywy, wypisać: You failed.

Nadaj skryptowi uprawnienia do wykonywania i uruchom go. Ponieważ wynik wynosi 75, dane wyjściowe powinny być następujące:

You passed!

Podpowiedź: Pamiętaj, aby użyć -ge do porównania „większy lub równy”, umieścić spacje wewnątrz nawiasów kwadratowych i zakończyć instrukcję if słowem fi.

Nie ma tu edytora plików, więc zapisz plik bezpośrednio z powłoki, używając dokumentu here: wpisz cat > check_score.sh << 'EOF', następnie wiersze skryptu, a na końcu osobny wiersz zawierający tylko EOF.

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