Wprowadzenie do pętli i instrukcji warunkowych w skryptach bash
Skrypty bash są nieodłącznym elementem pracy z systemami Linux. Umożliwiają automatyzację zadań, zarządzanie systemem oraz wykonywanie skomplikowanych operacji w prosty sposób. Dwa kluczowe elementy, które pozwalają na tworzenie bardziej zaawansowanych skryptów, to pętle i instrukcje warunkowe. W tym artykule omówimy, jak używać tych narzędzi w skryptach bash, aby zwiększyć ich funkcjonalność i efektywność.
Pętle w skryptach bash
Pętle pozwalają na wielokrotne wykonywanie określonego bloku kodu. W bashu mamy do dyspozycji kilka rodzajów pętli, w tym for
, while
oraz until
.
Pętla for
Pętla for
jest używana do iteracji przez listę elementów. Oto przykład:
#!/bin/bash
for i in {1..5}
do
echo "Liczba: $i"
done
Wynik tego skryptu to:
Liczba: 1
Liczba: 2
Liczba: 3
Liczba: 4
Liczba: 5
Pętla while
Pętla while
wykonuje blok kodu tak długo, jak warunek jest prawdziwy. Przykład:
#!/bin/bash
i=1
while [ $i -le 5 ]
do
echo "Liczba: $i"
((i++))
done
Wynik tego skryptu jest taki sam jak w przypadku pętli for
.
Pętla until
Pętla until
działa odwrotnie do pętli while
; wykonuje blok kodu, dopóki warunek jest fałszywy:
#!/bin/bash
i=1
until [ $i -gt 5 ]
do
echo "Liczba: $i"
((i++))
done
Wynik również będzie taki sam jak w poprzednich przykładach.
Instrukcje warunkowe w skryptach bash
Instrukcje warunkowe pozwalają na wykonywanie różnych bloków kodu w zależności od spełnienia określonych warunków. Najczęściej używane instrukcje warunkowe to if
, else
, elif
oraz case
.
Instrukcja if
Instrukcja if
sprawdza, czy warunek jest prawdziwy, i wykonuje blok kodu, jeśli tak jest:
#!/bin/bash
a=10
b=20
if [ $a -lt $b ]
then
echo "$a jest mniejsze niż $b"
fi
Wynik:
10 jest mniejsze niż 20
Instrukcja if-else
Instrukcja if-else
pozwala na wykonanie alternatywnego bloku kodu, jeśli warunek nie jest spełniony:
#!/bin/bash
a=30
b=20
if [ $a -lt $b ]
then
echo "$a jest mniejsze niż $b"
else
echo "$a jest większe lub równe $b"
fi
Wynik:
30 jest większe lub równe 20
Instrukcja elif
Instrukcja elif
pozwala na sprawdzenie dodatkowych warunków:
#!/bin/bash
a=30
b=30
if [ $a -lt $b ]
then
echo "$a jest mniejsze niż $b"
elif [ $a -eq $b ]
then
echo "$a jest równe $b"
else
echo "$a jest większe niż $b"
fi
Wynik:
30 jest równe 30
Instrukcja case
Instrukcja case
jest używana do sprawdzania wielu warunków w bardziej zwięzły sposób:
#!/bin/bash
echo "Podaj ocenę (1-5):"
read ocena
case $ocena in
1)
echo "Bardzo źle"
;;
2)
echo "Źle"
;;
3)
echo "Średnio"
;;
4)
echo "Dobrze"
;;
5)
echo "Bardzo dobrze"
;;
*)
echo "Nieprawidłowa ocena"
;;
esac
Wynik zależy od wprowadzonej oceny.
Podsumowanie
Pętle i instrukcje warunkowe są kluczowymi elementami skryptów bash, które pozwalają na tworzenie bardziej zaawansowanych i funkcjonalnych skryptów. Pętle for
, while
i until
umożliwiają wielokrotne wykonywanie bloków kodu, podczas gdy instrukcje warunkowe if
, else
, elif
oraz case
pozwalają na podejmowanie decyzji w zależności od spełnienia określonych warunków. Dzięki tym narzędziom można znacznie zwiększyć efektywność i elastyczność skryptów bash w systemie Linux.