Ejercicio número mayor o menor para practicar con el Shell

ejerciciobash

Vamos a realizar un programa muy sencillo que sea capaz de discriminar un número mayor de uno menor.

Especificaciones:
El programa nos debe de mostrar un menú con dos opciones (mayor y menor). Una vez escogida la opción pedirá dos números y dirá cuál es el mayor o menor en función de la opción elegida. También deberá mostrar un mensaje en caso de que sean iguales. A continuación preguntará si se quiere salir y en caso negativo volverá a mostrar el menú inicial. En caso afirmativo saldrá del programa.

Vamos a ello.

Creamos el archivo:

vim mayormenor.sh

Recordamos los condicionales de programación en la shell en este post (Haz clic).

Escribimos la lógica:
Pulsamos a para empezar a escribir

#!/bin/bash
seguir=1
while [ $seguir -eq 1 ]; do
        clear
        echo Introduce un número:
        read n1
        echo Introduce otro número:
        read n2
        echo Elije menor \(m\) o Mayor \(M\)
        read opcion
        if [ $n1 -eq $n2 ];then
                echo "Los números son iguales"
        else
                if [ "$opcion" = "m" ]; then
                        if [ $n1 -lt $n2 ]; then
                                echo $n1 es el menor
                        else
                                echo $n2 es el menor
                        fi
                fi
                if [ "$opcion" = "M" ]; then
                        if [ $n1 -gt $n2 ]; then
                                echo $n1 es el mayor
                        else
                                echo $n2 es el mayor
                        fi
                fi
        fi
echo "¿Continuar? s=1 n=2"
read seguir
done

:wq guardamos y salimos.

Le asignamos permisos de lectura:

chmod +x mayormenor.sh

Y… ejecutamos:

./mayormenor.sh

También podemos ejecutar con:

bask mayormenor.sh

🙂


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*