Programacion

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

Crear un script menu en bash es la manera más fácil de automatizar tareas, instalaciones, ejecuciones, copias de seguridad y miles de cosas más.

En esta ocasión usaremos bash, un intérprete de comandos que viene por defecto en la mayoría de distribuciones GNU/LINUX. Es el lenguaje más fácil de aprender y potente en mi opinión.

Requisitos para crear el menu

Actualizaremos el repositorio de nuestra terminal, y instalaremos algunos programas que usaremos más adelante.

apt update && apt upgrade -y
apt install nano 

Crear un nuevo archivo con el comando touch, pueden poner el nombre que gusten al menu.sh. Finalmente ejecutaremos nano para editar el archivo creado.

touch menu.sh
nano menu.sh

TE PUEDE INTERESAR: Como crear correos gmail sin numero

Comandos para el menú Shell

Les explicare un poco de cada uno de las funciones y comandos que se agregara al menú. Por lo tanto tendrás una idea, para agregar más funciones o mejorar este código.

EXPLICACION1: Esta es la dirección del intérprete de comandos en bash de nuestra terminal GNU/linux.

#!/bin/bash

EXPLICACION2: Se puede agregar comentarios, consejos, créditos, mensajes…etc usando el signo numeral o michi #

#Aqui el comentario

EXPLICACION3: El bucle while lo usaremos para regresar al inicio del menú, luego de escoger una opción. finalmente usaremos do-done para controlar el bloque de instrucciones.

while :
do 
#Aqui va todo el codigo o menu
done

EXPLICACION4: Ahora creamos nuestro menú usando la shell echo, lo que hará este código es mostrar el texto en la pantalla. Pueden agregar más opciones usando echo “agregar opción”.

  • clear (limpia la pantalla de inicio)
  • echo -e “\e[1;32m” (Color verde ilimitado en bash)

Te puede interesar: Colores en bash

#Menu
clear
echo -e "\e[1;32m"
echo " MENU SCRIPT V.1 "
echo "1. Mostrar directorio"
echo "2. Mostrar calendario"
echo "3. Mostrar dato"
echo "4. Salir"

EXPLICACION5: Lo que hará este código es dialogar con el usuario para escoger una opción en el menú. y read opción leerá la petición.

#Escoger menu
echo -n "Escoger opcion: "
read opcion

EXPLICACION6: Usaremos la sentencia case-esac para controlar las expresiones ($) del menú, iniciando con la variable in. Haremos un cierre con paréntesis ) a cada condición (opcion de menu), para comenzar.

El comando Read foo se utiliza como una input (presiona enter para continuar). Para detener la lista de comandos, agregaremos dos ;; después de cada condición.

#Seleccion de menu
case $opcion in
1) echo "Mostrando directorio"
ls
read foo
;;
2) echo "Mostrando calendario"
cal
read foo
;;
3) echo "Mostrando datos"
date
read foo
;;
4)exit 0;;

EXPLICACION7: Usando el asterisco y paréntesis, mostraremos una alerta cada vez que se cometa un error al escoger una opción. esac y done son para cerrar las sentencias y instrucciones asignadas anteriormente.

#Alerta
*)echo "Opcion invalida…"
sleep 1
esac
done

FINAL: Ya agregado todo el código, solo queda guardar los cambios con CTRL + x + y ENTER. Listo ahora solo quedaría ejecutar el script con los siguientes comandos.

chmod +x menu.sh
bash menu.sh

DATO IMPORTANTE: Pueden editar todo el contenido que esta entre las comillas ” ” luego de echo, ademas pueden agregar mas opciones dentro de case-esac

Código completo del menú script

GitHub: menushell

#!/bin/bash
#todoreal.com
while :
do
#Menu
clear
echo -e "\e[1;32m"
echo " MENU SCRIPT V.1 "
echo ""
echo "1. Mostrar directorio"
echo "2. Mostrar calendario"
echo "3. Mostrar dato"
echo "4. Salir"
echo ""
#Escoger menu
echo -n "Escoger opcion: "
read opcion
#Seleccion de menu
case $opcion in
1) echo "Mostrando directorio"
ls
read foo
;;
2) echo "Mostrando calendario"
cal
read foo
;;
3) echo "Mostrando datos"
date
read foo
;;
4)exit 0;;
#Alerta
*)echo "Opcion invalida..."
sleep 1
esac
done

¡NO SE OLVIDEN AGREGAR UN COMENTARIO!

Si tienen dudas, no se olviden de expresarlos con un comentario y de esta manera yo les respondere. Si quieren otro tipo de tutoriales simplemente comenten lo que quieren aprender. Con gusto estare aportando mas información para que ustedes aprendan o viceversa.

Deja una respuesta

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

Botón volver arriba

¡Bloqueador de anuncios detectado!

La publicidad es esencial para mantener el funcionamiento de esta página web. Te recomendamos utilizar navegadores como Google Chrome o Microsoft Edge. Por favor, actualiza esta página una vez hayas desactivado el bloqueador. Tu colaboración es muy apreciada.