Google
Web dns.bdat.net
next up previous contents
Next: Terminar un programa de Up: Estructura de control Previous: Sentencias break y continue   Índice General

Sentencia case

La sentencia case proporciona un if múltiple similar a la sentencia switch de C. El formato básico de esta sentencia es el siguiente:

case variable in
patrón1)
 lista_órdenes1
;;
patrón2)
lista_órdenes2
;;
...
patrónN)
lista_órdenesN;;
esac

La shell comprueba si variable coincide con alguno de los patrones especificados. La comprobación se realiza en orden, es decir empezando por patrón1 terminando por patrónN. En el momento en que se detecte que la cadena cumple algún patrón, se ejecutará la secuencia de mandatos correspondiente hasta llegar a ";;". Estos dos puntos y comas fuerzan a salir de la sentencia case y a continuar por la siguiente sentencia después de esac (esac es case alrevés).

Las reglas para componer patrones son las mismas que para formar nombres de ficheros, así por ejemplo, el carácter "*" es cumplido por cualquier cadena, por lo que suele colocarse este patrón en el último lugar, actuando como acción predeterminada para el caso de que no se cumpla ninguna de las anteriores. Ejemplo:

case "$1" in
  start)
        echo -n "Ha seleccionado start "
        ;;
  stop)
        echo -n "Ha seleccionado stop "
        ;;
  status)
        echo -n "Ha seleccionado stop "
        ;;
  restart)
        echo -n " Ha seleccionado restart "
        ;;
  *)
        echo "No es una opción válida"
        exit 1
esac

next up previous contents
Next: Terminar un programa de Up: Estructura de control Previous: Sentencias break y continue   Índice General
Pedro Pablo 2001-12-14