Instrukcja warunkowa if w BASH-u

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 22899 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