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
ifmusi 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.






