Instrukcja case
Pedros
Instrukcja case
Instrukcja case służy do zaregowania odpowienio do tego jaki mamy wzorzec. Można tak samo zrobić używając instrukcji warunkowej [[BASH/Instrukcja_warunkowa|if]], ale używając case kod jest dużo bardziej czytelny. Jak zwykle najłatwiej zrozumieć ideę na przykładzie:#!/bin/sh
echo "Podaj liczbe od 0-9"
read -n 1 zmienna
case "$zmienna" in
"1") echo "Wybrales jeden" ;;
"2") echo "Wybrales dwa" ;;
"3") echo "Wybrales trzy" ;;
"4") echo "Wybrales cztery" ;;
"5") echo "Wybrales piec" ;;
"6") echo "Wybrales szesc" ;;
"7") echo "Wybrales siedem" ;;
"8") echo "Wybrales osiem" ;;
"9") echo "Wybrales dziewiec" ;;
"0") echo "Wybrales zero" ;;
*) echo "Cos innego wybrales"
esac
Składnia jest prosta. Należy pamiętać o dwóch średnikach na końcu wiersza. Jeśli chcemy wykonać dwa polecenia po wybraniu to należy je oddzielić średnikiem, np.
...
"9") echo "Wybrales dziewiec" ; echo "Cos tam" ;;
...
W takim wypadku jak ktoś naciśnie 9, to wykonają się dwa polecenia echo "Wybrales dziewiec" i echo "Cos tam". Można tych poleceń napisać bardzo dużo, jednak lepiej napisać sobie prostą funkcję i ją wywoływać. Będzie to bardziej przejrzyste. Wyjaśnić tutaj należy jeszcze jedną rzecz. ) przy wzorcach. Niektórym od razu przyszło do głowy po co coś takiego jest i jak z tego korzystać. Polecenie podane po ) wykonywane jest, gdy żaden ze wzorca nie pasuje.