Como hacer un MENU en BASH SHELL SCRIPTING (bucles y sentencias)

Crear un script de menú en Bash es una forma efectiva de automatizar tareas como instalaciones, ejecuciones y copias de seguridad. Bash, el intérprete de comandos predeterminado en la mayoría de las distribuciones GNU/Linux, es accesible para principiantes y poderoso para usuarios avanzados. Esta combinación lo convierte en una herramienta ideal para la automatización de procesos, facilitando tareas complejas y mejorando la eficiencia operativa.

Para entender mejor cómo funciona el script de menú en Bash que hemos diseñado, vamos a desglosar cada parte y explicar la función de cada sección de código. Este desglose ayudará a comprender cómo cada componente interactúa dentro del script para proporcionar una interfaz de menú funcional.

Crear el Archivo del Script

Primero, crea un archivo para tu script. Puedes hacerlo utilizando un editor de texto en tu sistema Linux:

nano menu_script.sh

Shebang

#!/bin/bash

Este es el shebang. Le dice al sistema que este script debe ejecutarse usando Bash, que es el intérprete de comandos estándar en muchos sistemas Linux. Esta línea debe ser la primera en cualquier script de Bash, asegurando que se interprete correctamente.

Bucle Principal: while

while true
do
    ...
done

Este while loop es el corazón del script de menú. while true crea un bucle infinito, lo que significa que el menú seguirá mostrándose y solicitando al usuario que ingrese una opción hasta que explícitamente se rompa el bucle (usando break).

Limpieza de la Pantalla

clear

El comando clear limpia la terminal cada vez que comienza el bucle. Esto asegura que el menú se presente de manera limpia y ordenada cada vez que el usuario completa una acción y vuelve al menú principal.

Presentación del Menú

    echo "MENU SCRIPT V.1"
    echo "1. Mostrar directorio"
    echo "2. Mostrar base SQL"
    echo "3. Mostrar datos"
    echo "4. Mostrar IP"
    echo "5. Mostrar redes wi-fi"
    echo "6. Mostrar claves wi-fi"
    echo "7. Hacer copia de seguridad"
    echo "0. Salir"
    echo "Escoger opcion: "

Estos comandos echo imprimen las opciones del menú en la pantalla, proporcionando al usuario las diferentes acciones que puede elegir. Cada opción está numerada para facilitar la selección.

Captura de la Opción del Usuario

read opcion

El comando read captura la entrada del usuario desde el teclado y la almacena en la variable opcion. Esta entrada es la que se utiliza para determinar qué acción realizar basada en la selección del usuario.

Estructura de Decisión: case

    case $opcion in
        1)
            echo "Mostrando directorio..."
            # Comando para mostrar directorio
            ls
            ;;
        2)
            echo "Mostrando base SQL..."
            # Comando para mostrar base SQL
            ;;
        3)
            echo "Mostrando datos..."
            # Comando para mostrar datos
            ;;
        4)
            echo "Mostrando IP..."
            # Comando para mostrar IP
            ;;
        5)
            echo "Mostrando redes Wi-Fi..."
            # Comando para mostrar redes Wi-Fi
            ;;
        6)
            echo "Mostrando claves Wi-Fi..."
            # Comando para mostrar claves Wi-Fi
            ;;
        7)
            echo "Haciendo copia de seguridad..."
            # Comando para hacer copia de seguridad
            ;;
        0)
            echo "Saliendo..."
            break
            ;;
        *)
            echo "Opción inválida, intenta de nuevo."
            ;;
    esac

TE PUEDE INTERESAR: Código para conseguir pareja

La declaración case se utiliza para manejar las diferentes opciones que el usuario puede elegir. Dependiendo del valor de $opcion, el script ejecutará un bloque de código diferente. Cada bloque termina con ;; para indicar el final de esa sección del código. La opción * actúa como un catch-all para cualquier entrada que no coincida con los casos definidos, avisando al usuario que ha ingresado una opción inválida.

Pausa entre Acciones

read -p "Presiona una tecla para continuar..."

Este comando read pausa la ejecución del script hasta que el usuario presione una tecla, permitiendo que el usuario tenga tiempo para leer la salida de la opción seleccionada antes de que el menú se limpie y se vuelva a mostrar.

Salida del Menú

break

Dentro de la opción de salir (cuando $opcion es 0), el comando break se utiliza para salir del bucle while. Esto termina el script y devuelve el control a la terminal.

Ejecutabilidad del Script

chmod +x menu_script.sh

Este comando cambia los permisos del archivo de script para hacerlo ejecutable. Es un paso necesario para permitir que el script se ejecute directamente desde la terminal.

Ejecución del Script

./menu_script.sh

Finalmente, este comando ejecuta el script. El ./ indica que el script se encuentra en el directorio actual y Bash debería ejecutarlo.

Cada parte del script juega un rol importante en asegurar que el menú funcione de manera eficiente y amigable para el usuario, permitiendo ejecutar tareas específicas de forma organizada y controlada.

Codigo completo

while true
do
    clear
    echo "MENU SCRIPT V.1"
    echo "1. Mostrar directorio"
    echo "2. Mostrar base SQL"
    echo "3. Mostrar datos"
    echo "4. Mostrar IP"
    echo "5. Mostrar redes wi-fi"
    echo "6. Mostrar claves wi-fi"
    echo "7. Hacer copia de seguridad"
    echo "0. Salir"
    echo "Escoger opcion: "
    read opcion

    case $opcion in
        1)
            echo "Mostrando directorio..."
            # Comando para mostrar directorio
            ls
            ;;
        2)
            echo "Mostrando base SQL..."
            # Comando para mostrar base SQL
            ;;
        3)
            echo "Mostrando datos..."
            # Comando para mostrar datos
            ;;
        4)
            echo "Mostrando IP..."
            # Comando para mostrar IP
            ;;
        5)
            echo "Mostrando redes Wi-Fi..."
            # Comando para mostrar redes Wi-Fi
            ;;
        6)
            echo "Mostrando claves Wi-Fi..."
            # Comando para mostrar claves Wi-Fi
            ;;
        7)
            echo "Haciendo copia de seguridad..."
            # Comando para hacer copia de seguridad
            ;;
        0)
            echo "Saliendo..."
            break
            ;;
        *)
            echo "Opción inválida, intenta de nuevo."
            ;;
    esac
    read -p "Presiona una tecla para continuar..."
done

Conclusión

Este script es un excelente punto de partida para los usuarios de Bash que deseen crear interfaces de usuario simples y efectivas sin profundizar en técnicas de programación más complejas. Al entender cómo funciona cada parte del script, los usuarios pueden modificarlo para incluir nuevas opciones y funcionalidades, adaptándolo a sus necesidades específicas. Con la práctica, este tipo de scripting se convierte en una herramienta poderosa para la automatización y la gestión de sistemas.