Comando di selezione Bash - Creare menu negli script della shell

10 dic 2021 2 min di lettura
Comando di selezione Bash - Creare menu negli script della shell
Indice dei contenuti

Introduzione

Il costrutto Bash Select viene utilizzato per creare un menu numerato dall'elenco di elementi.

Sintassi

L' istruzione select ha una sintassi simile a quella di "for loop" ed è:

select ITEM in [List]
do
     [commands]
done

Qui l'elenco può essere un array, un intervallo di numeri, una serie di stringhe separate da spazio, l'output di un comando, ecc. E quando verrà invocato il costrutto select, ogni elemento dell'elenco verrà stampato con una sequenza numerata. Il costrutto continuerà a essere eseguito fino all'esecuzione del comando break.

Esempio Bash Select

Comprendiamo il costrutto select con un esempio. Qui abbiamo creato uno script bash chiamato brand.sh e il comando select viene utilizzato per recuperare i dati dall'elenco come menu. Lo script stamperà prima il nome di tutte le marche presenti nell'elenco e poi chiederà all'utente di sceglierne una e stamperà il nome della marca selezionata:

#!/bin/bash

select brand in Apple Google Microsoft Amazon Meta
do
  echo "You have chosen $brand"
done

Esegui lo script con ' bash brand.sh '. Vedrai il seguente output:

1) Apple
2) Google
3) Microsoft
4) Amazon
5) Meta
#? 1
You have chosen Apple
#? 3
You have chosen Microsoft
#? ^C

Premi CTRL+C per uscire.

Un altro esempio

Prendiamo un altro esempio del costrutto select per vedere come funziona con un'istruzione case.

Qui creeremo un nuovo file chiamato select.sh e una volta eseguito il file, l'utente selezionerà qualsiasi elemento, quindi l'istruzione case abbinerà l'elemento con il valore del caso. Se non viene trovato alcun valore , verrà stampato "Voce non valida":

#!/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

Ora esegui lo script con bash select.sh e vedrai il seguente output.

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.

Conclusione

Questa guida ti spiega come usare il comando select negli script bash.

Support us with a

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.