Como hacer un menu en BASH shell scripting (bucles y sentencias)

Crear un script menu en bash es la manera mas facil de automatizar tareas, instalaciones, ejecuciones, copias de seguridad y miles de cosas mas.

En esta ocasion usaremos bash, un interprete de comandos que viene por defecto en la mayoria de distribuciones GNU/LINUX. Es el lenguaje mas facil de aprender y potente en mi opinion.

REQUISITOS PARA CREAR EL MENU

Actualizaremos el repositorio de nuestra terminal, y instalaremos algunos programas que usaremos mas 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 MENU EN BASH

Les explicare un poco de cada uno de las funciones y comandos que se agregara al menu. Por lo tanto tendras una idea, para agregar mas funciones o mejorar este codigo.

EXPLICACION1: Esta es la direccion del interprete de comandos en bash de nuestra terminal GNU/linux.

#!/bin/bash

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

#Aqui el comentario

EXPLICACION3: El bucle while lo usaremos para regresar al inicio del menu, luego de escoger una opcion. finalmente usaremos do-done para controlar el bloque de instrucciones.

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

EXPLICACION4: Ahora creamos nuestro menu usando la shell echo, lo que hara este codigo es mostrar el texto en la pantalla. Pueden agregar mas opciones usando echo “agregar opcion”.

  • 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 hara este codigo es dialogar con el usuario para escoger una opcion en el menu. y read opcion leera la peticion.

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

EXPLICACION6: Usaremos la sentencia case-esac para controlar las expresiones ($) del menu, iniciando con la variable in. Haremos un cierre con parentesis ) a cada condicion (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 ;; despues de cada condicion.

#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 parentesis, mostraremos una alerta cada vez que se cometa un error al escoger una opcion. 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 codigo, solo queda guardar los cambios con CTRL + x + y ENTER. Listo ahora solo quedaria 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

CODIGO COMPLETO DEL MENU SCRIPT

#!/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 informacion para que ustedes aprendan o viceversa.

Publicaciones relacionadas

Deja una respuesta

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