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.

0 komentarzy