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.