BASH

Instrukcja case

  • 2006-12-24 14:10
  • 0 komentarzy
  • 1190 odsłon
  • Oceń ten tekst jako pierwszy

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 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.