poniedziałek,
Bash: Instrukcje warunkowe
Instrukcje warunkowe w Bashu są potrzebne do sterowania przepływem skryptu na podstawie spełnienia określonych warunków.
Prosty warunek if
Składnia:
if [ warunek ]; then
# komendy, jeśli warunek jest prawdziwy
fi
Przykład:
if [ -d $directory ]; then
echo "Katalog istnieje."
fi
Warunek if-else
Składnia:
if [ warunek ]; then
# komendy, jeśli warunek jest prawdziwy
else
# komendy, jeśli warunek jest fałszywy
fi
Przykład:
if [ -f $file ]; then
echo "Plik istnieje."
else
echo "Plik nie istnieje."
fi
Warunek if-elif-else
Składnia:
if [ warunek1 ]; then
# komendy dla warunku1
elif [ warunek2 ]; then
# komendy dla warunku2
else
# komendy, jeśli żaden z warunków nie jest spełniony
fi
Przykład:
if [ $num -gt 10 ]; then
echo "Liczba większa niż 10."
elif [ $num -eq 10 ]; then
echo "Liczba równa 10."
else
echo "Liczba mniejsza niż 10."
fi
Warunki złożone
Możesz łączyć warunki przy użyciu operatorów logicznych:
&&
(AND) – wykonuje drugi warunek, jeśli pierwszy jest prawdziwy.||
(OR) – wykonuje drugi warunek, jeśli pierwszy jest fałszywy.
Przykład:
if [ -d $directory ] && [ -w $directory ]; then
echo "Katalog istnieje i można do niego pisać."
fi
Uwagi
- W Bashu do oceny warunków można używać
test
lub[ ]
. - Pamiętaj o zachowaniu odpowiednich odstępów wewnątrz
[ ]
, na przykład[ $a -lt $b ]
, nie[ $a-lt$b ]
. - Często używa się operatorów testowania plików (jak
-f
dla plików,-d
dla katalogów) lub operatorów porównań numerycznych/łańcuchów znaków. - W nowszych wersjach Bash dla warunków poleca się używanie
[[ ]]
zamiast[ ]
, ponieważ zapewnia to rozszerzoną funkcjonalność i większą elastyczność.