Bash Select, cómo crear un menú sencillo

top feature image

Bash Select, cómo crear un menú sencillo

Valora este artículo:
1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votos, promedio: 5,00 de 5)
Cargando…

Una vez más aquí. En esta ocasión vamos a echar un vistazo a algunos conceptos básicos de la construcción select en Bash. El comando ‘select‘ es un comando bash muy útil para la creación de menús en bash. Los diferentes tipos de tareas de generación de menús, como la creación de una lista basada en menús, la creación de un menú a partir del contenido del archivo, etc., se pueden realizar mediante el comando bash select.

Construye con Bash Select

Como decía, la construcción select genera un menú a partir de una lista de elementos. Además esta tiene casi la misma sintaxis que el bucle for:

La [LISTA] puede ser una serie de cadenas separadas por espacios, un rango de números, la salida de un comando, una matriz, etc. Se puede configurar una solicitud personalizada para la construcción select usando la variable de entorno PS3.

Cuando se invoca la construcción, cada elemento de la lista se imprime en la pantalla, precedido por un número.

Si el usuario escribe un número que corresponde al número de uno de los elementos mostrados, entonces el valor de [ELEMENTO] se establece en ese elemento. El valor del elemento seleccionado se almacena en la variable RESPUESTA. De lo contrario, si la entrada del usuario está vacía, la solicitud y la lista del menú se muestran nuevamente.

El ciclo de selección continuará ejecutándose y solicitará la entrada del usuario hasta que se ejecute el comando de interrupción.

Para empezar y poder probar los ejemplos que ilustrarán este menú, vamos a crear un archivo bash llamado select1.sh. En todos estos ejemplos el comando ‘select’ va a recuperar la información de la lista, e imprimirá la información como un menú.

Ejemplos de bash select

Una lista

Para demostrar cómo funciona la construcción select, echemos un vistazo al siguiente ejemplo simple.

Para ejecutar el script creado solo tenemos que ejecutarlo de la siguiente manera:

ejemplo1 bash select

El script mostrará un menú que consta de elementos de la lista con un número que lo acompaña y el mensaje de PS3. Cuando el usuario escribe un número, el script imprimirá el mensaje y el número seleccionado.

Una calculadora de números enteros

Ahora echemos un vistazo a un ejemplo más práctico. Se trata de una calculadora simple que solicita al usuario que escriba los números y ella realizará las operaciones aritméticas básicas como; suma, resta, multiplicación y división.

Cuando se ejecuta el script, muestra el menú y la solicitud de PS3. Se le solicita al usuario que seleccione la operación y luego escriba dos números. Dependiendo de la entrada del usuario, el script imprimirá el resultado. Se le pedirá al usuario que realice una nueva operación después de cada selección hasta que se ejecute el comando break. En caso de seleccionar un operación inválida, se va a mostrar un mensaje de error.

ejemplo 2 bash select

Un inconveniente de este script es que solo puede funcionar con enteros.

Calculadora que admite números flotantes

Aquí hay una versión un poco más avanzada del anterior script. En ella vamos a utilizarla herramienta bc que admite números flotantes para realizar cálculos matemáticos. Además, el código repetitivo se agrupa dentro de una función llamada calcular().

El resultado del anterior script es como el que podemos ver en la siguiente captura de pantalla:

ejemplo 3 bash select

Como espero que se haya podido ver, la construcción select permite generar menús fácilmente. Es especialmente útil al escribir scripts de shell que requieren la entrada del usuario. Todos estos ejemplos de select, buscan ser lo más sencillos posibles en cuanto a la creación del menú Bash se refiere.







Resumen
Bash Select, cómo crear un menú sencillo para la terminal
Nombre
Bash Select, cómo crear un menú sencillo para la terminal
Descripción
En este pequeño artículo vamos a ver cómo podemos crear un pequeño menú para utilizar desde la terminal mediante Bash Select.
Autor
Nombre del editor
entreunosyceros
Logo del editor

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.