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

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.