BASH – Instrukcja if
: Kompleksowy przewodnik
BASH (Bourne Again Shell) to jedno z najpopularniejszych narzędzi do automatyzacji zadań w systemach Linux i Unix. Jednym z podstawowych elementów programowania w BASH jest instrukcja warunkowa if
, która pozwala na wykonywanie kodu w zależności od spełnienia określonego warunku. W tym artykule wyjaśnimy, jak działa instrukcja if
, przedstawimy jej składnię oraz praktyczne przykłady użycia.
Czym jest instrukcja if
w BASH?
Instrukcja if
pozwala na warunkowe wykonanie fragmentu kodu. Oznacza to, że określony blok poleceń zostanie uruchomiony tylko wtedy, gdy podany warunek zostanie spełniony. To kluczowe narzędzie w tworzeniu skryptów, które reagują na różne sytuacje.

Podstawowa składnia instrukcji if
Podstawowa składnia instrukcji if
w BASH wygląda następująco:
if [ warunek ]; then
# kod do wykonania, jeśli warunek jest spełniony
fi
Kluczowe elementy:
if
– otwiera instrukcję warunkową.[ warunek ]
– warunek, który jest oceniany. Można go zapisać także jako[[ warunek ]]
.then
– wskazuje początek kodu do wykonania, jeśli warunek jest prawdziwy.fi
– zamyka instrukcjęif
.
Rozszerzona składnia: if...else
i if...elif...else
Instrukcja if
może być rozszerzona o dodatkowe bloki else
lub elif
, które pozwalają na obsługę wielu scenariuszy.
if...else
if [ warunek ]; then
# kod do wykonania, jeśli warunek jest spełniony
else
# kod do wykonania, jeśli warunek nie jest spełniony
fi
if...elif...else
if [ warunek1 ]; then
# kod do wykonania, jeśli warunek1 jest spełniony
elif [ warunek2 ]; then
# kod do wykonania, jeśli warunek2 jest spełniony
else
# kod do wykonania, jeśli żaden z warunków nie jest spełniony
fi
Operatory porównania w instrukcji if
Operatory porównania liczb
-eq
– równe (==
)-ne
– różne (!=
)-lt
– mniejsze niż (<
)-le
– mniejsze lub równe (<=
)-gt
– większe niż (>
)-ge
– większe lub równe (>=
)
Przykład:
if [ 5 -gt 3 ]; then
echo "5 jest większe niż 3"
fi
Operatory porównania ciągów znaków
=
– równe!=
– różne-z
– sprawdza, czy ciąg jest pusty-n
– sprawdza, czy ciąg nie jest pusty
Przykład:
if [ "abc" = "abc" ]; then
echo "Ciągi są identyczne"
fi
Operatory sprawdzania plików
-e
– plik istnieje-f
– plik istnieje i jest zwykłym plikiem-d
– plik istnieje i jest katalogiem-r
– plik jest czytelny-w
– plik jest zapisywalny-x
– plik jest wykonywalny
Przykład:
if [ -e /etc/passwd ]; then
echo "Plik /etc/passwd istnieje"
fi
Przykłady użycia instrukcji if
w BASH
1. Prosty przykład z liczbami
#!/bin/bash
read -p "Podaj liczbę: " liczba
if [ $liczba -gt 10 ]; then
echo "Podana liczba jest większa niż 10"
else
echo "Podana liczba jest mniejsza lub równa 10"
fi
2. Sprawdzanie istnienia pliku
#!/bin/bash
plik="/etc/passwd"
if [ -f $plik ]; then
echo "Plik $plik istnieje"
else
echo "Plik $plik nie istnieje"
fi
3. Użycie elif
do obsługi wielu warunków
#!/bin/bash
read -p "Podaj swoje imię: " imie
if [ "$imie" = "Jan" ]; then
echo "Witaj, Jan!"
elif [ "$imie" = "Anna" ]; then
echo "Witaj, Anna!"
else
echo "Witaj, $imie!"
fi
4. Sprawdzanie uprawnień do pliku
#!/bin/bash
plik="/etc/passwd"
if [ -r $plik ]; then
echo "Plik $plik jest czytelny"
else
echo "Plik $plik nie jest czytelny"
fi
5. Sprawdzanie pustego ciągu znaków
#!/bin/bash
read -p "Podaj tekst: " tekst
if [ -z "$tekst" ]; then
echo "Nie podałeś żadnego tekstu"
else
echo "Wpisałeś: $tekst"
fi
Często popełniane błędy
- Brak spacji w instrukcji warunkowej:
- Nieprawidłowe:
if [5 -gt 3]; then
- Prawidłowe:
if [ 5 -gt 3 ]; then
- Nieprawidłowe:
- Nieprawidłowe użycie zmiennych:
- Użycie zmiennej bez cudzysłowów może powodować błędy, jeśli jest pusta:
if [ -z $zmienna ]; then
- Prawidłowo:
if [ -z "$zmienna" ]; then
- Użycie zmiennej bez cudzysłowów może powodować błędy, jeśli jest pusta:
- Zapomnienie o
fi
:- Każda instrukcja
if
musi być zakończona słowem kluczowymfi
.
- Każda instrukcja
Podsumowanie
Instrukcja if
w BASH to podstawowe narzędzie do tworzenia warunkowych operacji w skryptach. Dzięki niej możesz kontrolować przepływ działania programu, reagować na różne sytuacje i automatyzować zadania. Warto zapamiętać podstawowe składnie, operatory porównania oraz unikać najczęstszych błędów. Dobrze opanowana instrukcja if
otwiera drzwi do bardziej zaawansowanego programowania w powłoce BASH.
BASH – elastyczność, którą oferuje dzięki takim funkcjom jak instrukcja if
, sprawia, że jest niezastąpiony w codziennej pracy administratora systemu i programisty.