Sentencia case

7 febrero, 2013
admin

Case hace la misma funcion que el if, pero de distinta forma.
Al igual que el fi, que se cierra con fi, el case se cierra con esac.

La sintaxis es:

case “$VARIABLE” in

             opción1)
             comando
             ;;

             opción2)
             comando
             ;;

              opción3)
              comando
              ;;
esac

Ejemplo:
Este ejemplo es una calculadora sencillita que he creado yo.
Te dice la fecha en que estamos, y te dice que tienes las opciones sumar, restar, multiplicar, dividir y salir.
El while true do que se cierra con done sirve para el script no se cierre hasta que le digamos exit.
Lee la opcion que le das en una variable llamada OPERACION
Y el case la compara con las opciones.
Si has escrito sumar, con mayusculas o minisculas te pedirá dos numeros, que guardará en variables distintas, las sumará , guardará la suma en otra variable, y te la mostrara.
Lo mismo con restar, multiplicar y dividir.
Si la opcion que le damos es salir o SALIR, el script limpiara la pantalla con el comando clear, y saldra de con el comando exit.
La última opción del asterisco, sirve para que cualquier cosa que le digamos que no sea las opciones que tenga, nos muestr que no sabe que le hemos escrito.

    #! /bin/bash
    echo “###########################################”
    echo “###########################################”
    echo “#### Bienvenido a la calculadora Linux ####”
    echo “###########################################”
    FECHA=(`date +”%d/%m/%Y”`)
    echo “####  Estamos a $FECHA             ####”                    
    echo “###########################################”
    echo “####  Las opciones son:                ####”
    echo “###########################################”
    echo “####  Para sumar=             sumar    ####”
    echo “####  Para restar=            restar   ####”
    echo “####  Para multiplicar=  multiplicar   ####”
    echo “####  Para dividir=          dividir   ####”
    echo “####  Para salir =            salir    ####”
    echo “###########################################”
    echo “###########################################”
    while true
    do

    read OPERACION

    case “$OPERACION” in

    sumar|SUMAR)

    echo “####################”;
    echo “## Dime un numero ##”;
    echo “####################”;
    read SUMA1
    echo “######################”;
    echo “## Dime otro numero ##”;
    echo “######################”;
    read SUMA2

    RESULTADOSUMA=(`expr “$SUMA1″ + “$SUMA2″`)
    echo “###################################”;
    echo “## la suma de ambos es : $RESULTADOSUMA”;
    echo “###################################”;
    ;;

    restar|RESTAR)

    echo “####################”;
    echo “## Dime un numero ##”;
    echo “####################”;
    read RESTA1
    echo “######################”;
    echo “## Dime otro numero ##”;
    echo “######################”;
    read RESTA2
    RESULTADORESTA=(`expr “$RESTA1″ – “$RESTA2″`)
    echo “###################################”;
    echo “## la resta de ambos es : $RESULTADORESTA”;
    echo “###################################”;
    ;;

    multiplicar|MULTIPLICAR)

    echo “####################”;
    echo “## Dime un numero ##”;
    echo “####################”;
    read MULTIPLICAR1
    echo “######################”;
    echo “## Dime otro numero ##”;
    echo “######################”;
    read MULTIPLICAR2
    RESULTADOMULTIPLICAR=(`expr “$MULTIPLICAR1″ * “$MULTIPLICAR2″`)
    echo “#####################################”;
    echo “## la multiplicación de ambos es : $RESULTADOMULTIPLICAR”;
    echo “#####################################”;
    ;;

    dividr|DIVIDIR)

    echo “####################”;
    echo “## Dime un numero ##”;
    echo “####################”;
    read DIVIDIR1
    echo “######################”;
    echo “## Dime otro numero ##”;
    echo “######################”;
    read DIVIDIR2
    RESULTADODIVIDIR=(`expr “$DIVIDIR1″ / “$DIVIDIR2″`)
    echo “#####################################”;
    echo “## la división de ambos es : $RESULTADODIVIDIR”;
    echo “#####################################”;
    ;;

    salir|SALIR)
    clear ; exit
    ;;

    *)
    echo “opcion no computable”
    ;;

    esac

    done

Sin comentarios

You must be logged in to post a comment.
CONTENIDO PATROCINADO POR

FPla Informatica

Diseño web y Marketing digital
Disponga de una página web o un comercio electrónico de alta calidad a precios muy competitivos.
ACCEDER A FPLA INFORMATICA
close-link