Introducción
La construcción Bash Select se utiliza para crear un menú numerado a partir de la lista de elementos.
Sintaxis
La instrucción select tiene una sintaxis similar a la de " for loop " y es:
select ITEM in [List]
do
[commands]
done
Aquí la lista puede ser una matriz, un rango de números, una serie de cadenas separadas por espacios, la salida de un comando, etc. Y cuando se llama a la construcción de selección, cada elemento de la lista se imprimirá con una secuencia numerada. La construcción continuará ejecutándose hasta que se ejecute el comando break.
Ejemplo de Bash Select
Entendamos la construcción select con un ejemplo. Aquí hemos creado un script bash llamado brand.sh y el comando select se usa para recuperar los datos de la lista como un menú. El script imprimirá primero el nombre de todas las marcas en la lista y luego le pedirá al usuario que elija una e imprima el nombre de la marca seleccionada:
#!/bin/bash
select brand in Apple Google Microsoft Amazon Meta
do
echo "You have chosen $brand"
done
Ejecute el script con ' bash brand.sh '. Verá el siguiente resultado:
1) Apple
2) Google
3) Microsoft
4) Amazon
5) Meta
#? 1
You have chosen Apple
#? 3
You have chosen Microsoft
#? ^C
Presione CTRL + C para salir.
Otro ejemplo
Tomemos otro ejemplo de la construcción select para ver cómo funciona con una declaración de caso.
Aquí crearemos un nuevo archivo llamado select.sh y una vez que se ejecute el archivo, el usuario seleccionará cualquier elemento, luego la declaración del caso hará coincidir el elemento con el valor del caso. Si no se encuentra ningún valor , se imprimirá "Entrada no válida":
#!/bin/bash
echo "Which Operating System do you like?"
select os in Ubuntu LinuxMint Windows8 Windows7 WindowsXP
do
case $os in
"Ubuntu"|"LinuxMint")
echo "I also use $os."
;;
"Windows8" | "Windows10" | "WindowsXP")
echo "Why don't you try Linux?"
;;
*)
echo "Invalid entry."
break
;;
esac
done
Ahora ejecute el script con bash select.sh y verá el siguiente resultado.
1) Ubuntu 3) Fedora 5) Windows7
2) LinuxMint 4) Windows8 6) WindowsXP
#? 1
I also use Ubuntu.
#? 2
I also use LinuxMint.
#? 4
Why don't you try Linux?
#? 7
Invalid entry.
Conclusión
Esta guía le dice cómo usar el comando select en scripts bash.