Cómo hacer menús en Shell Script con select

El comando select muestra numeradas las distintas opciones que le pasamos en forma de lista, permite al usuario elegir de una manera sencilla escribiendo le número de opción y recibe en una variable el valor de la opción elegida en formato cadena.

Una vez capturado ese valor, podemos procesarlo como queramos. Una opción muy habitual es mediante case.

Veamos un ejemplo en el que le pidamos al usuario cuál es su idioma y le salude en ese idioma. Y, por último, vamos a comprobar que fuera de la estructura select la variable sigue siendo utilizable con el valor indicado por teclado:

#!/bin/bash

echo "¿Cuál es su idioma?"

select language in Español Catalá Galego Euskera Other
do
    case $language in 
        "Español"|"Catalá")
            echo "Hola, $USER."
            break
            ;;
        "Galego")
            echo "Ola, $USER."
            break
            ;;
        "Euskera")
            echo "Kaixo, $USER."
            break
            ;;
        *)
            echo "Hello, $USER."
            break
            ;;
    esac
done
echo "Fuera de select, el idioma sigue siendo $language."

Vamos a probarlo y ver qué nos devuelve eligiendo español:

¿Cuál es su idioma?
1) Español
2) Catalá
3) Galego
4) Euskera
5) Other
#? 1
Hola, fernando.
Fuera de select, el idioma sigue siendo Español.

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.