Stronę tą wyświetlono już: 23637 razy
Ogólna konstrukcja instrukcji warunkowej if w BASH-u
Instrukcja warunkowa if wygląda następująco:
if [ warunek1 ]
then
echo "warunek 1 jest spełniony";
elif [ warunek2 ]
then
echo "warunek 2 jest spełniony";
else
echo "warunek 1 ani warunek 2 nie zostały spełnione";
fi
Ważne jest, że instrukcje warunkowe muszą znaleźć się wewnątrz nawiasów kwadratowych, które muszą być oddzielone od tychże nawiasów spacją, ponieważ zapis:
if [warunek1]
spowoduje błąd.
Warunki i operatory logiczne
Zapisywanie warunkowych instrukcji w pętli wymaga znajomości operatorów warunkowych BASH-a, oto niektóre z nich:
wartość podana po prawej stronie tego operatora ma niezerową długość, przykład:
VALUE="jakiś tekst";
if [ -n "$VALUE" ]
then
echo "zawiera niezerowej długości łańcuch znaków";
else
echo "zawiera zerowej długości łańcuch znaków";
fi
zwraca prawdę, jeżeli istnieje plik o nazwie podanej po prawej stronie tego operatora, przykład:
VALUE="folder";
if [ -d "$VALUE" ]
then
echo "folder istnieje";
else
echo "folder nie istnieje";
fi
sprawdza, czy liczba podana po lewej stronie operatora jest równa liczbie podanej po jego prawej stronie, przykład:
VALUE1=120;
VALUE2=120;
if [ $VALUE1 -eq $VALUE2 ]
then
echo "są równe";
else
echo "nie są równe";
fi