if
- if – instrukcja warunkowa dostępna w powłokach takich jak Bash, sh czy zsh.
- Umożliwia wykonywanie bloków poleceń tylko wtedy, gdy warunek logiczny zostanie spełniony.
- Podstawowy element sterowania przepływem w skryptach powłoki.
Składnia
Dział zatytułowany „Składnia”if [warunek]then poleceniafi
if [warunek]; then poleceniaelse inne_poleceniafi
if [warunek1]; then poleceniaelif [warunek2]; then inne_poleceniaelse kolejne_poleceniafi
- Warunek jest zwykle sprawdzany za pomocą
test
lub nawiasów kwadratowych[]
.
Parametry
Dział zatytułowany „Parametry”Element | Opis |
---|---|
if | Rozpoczyna blok instrukcji warunkowej |
[ warunek ] | Wyrażenie logiczne lub test do sprawdzenia |
then | Oddziela warunek od poleceń do wykonania |
elif | Dodatkowy warunek sprawdzany, jeśli poprzedni jest fałszywy |
else | Blok wykonujący się, jeśli wszystkie warunki są fałszywe |
fi | Kończy blok instrukcji warunkowej |
Przykłady użycia
Dział zatytułowany „Przykłady użycia”# 1. Prosty warunekif [ -f plik.txt ]; then echo "Plik istnieje"fi
# 2. Warunek z elseif [ "$USER" = "root" ]; then echo "Jesteś administratorem"else echo "Nie jesteś administratorem"fi
# 3. Zastosowanie elifif [ -z "$1" ]; then echo "Brak argumentu"elif [ -f "$1" ]; then echo "Argument jest plikiem"else echo "Argument nie jest plikiem"fi
- Pierwszy przykład sprawdza istnienie pliku.
- Drugi rozróżnia komunikat w zależności od użytkownika.
- Trzeci wykorzystuje wiele warunków.
if
w Bash testuje kod wyjścia polecenia – 0 oznacza sukces, wartość różna od zera oznacza błąd.- Do testów używaj
test
,[ ]
,[[ ]]
lub poleceń zwracających odpowiedni kod wyjścia. [[ ]]
oferuje dodatkowe możliwości, np. dopasowanie wzorców i porównania ciągów.
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd / Komunikat | Przyczyna | Rozwiązanie |
---|---|---|
syntax error: unexpected end of file | Brak zamknięcia bloku fi | Upewnij się, że każdemu if odpowiada fi |
unary operator expected | Niepoprawne użycie operatora testowego | Upewnij się, że zmienne są ujęte w cudzysłowy |
Linki i źródła
Dział zatytułowany „Linki i źródła”- GNU Bash Manual – Conditional Constructs – dokumentacja bash.
- Advanced Bash-Scripting Guide – if – przewodnik po skryptach bash.
- Bash Academy – if statements – opis składni i przykładów.