Comando Bash Selection: crea menús en scripts de shell

10 dic 2021 2 min di lettura
Comando Bash Selection: crea menús en scripts de shell
Indice dei contenuti

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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.