Comando bash select

Comando bash select
Selezionare Il comando viene utilizzato negli script per la creazione di menu. Diversi tipi di attività di generazione di menu possono essere implementati con Selezionare Comando come: creazione dell'elenco di regista basato sul menu, creazione di un menu dal contenuto del file ecc. Come è possibile implementare questi tipi di attività usando Bash Selezionare Il comando è mostrato in questo tutorial di suggerimento Linux.

Sintassi:

Seleziona V in data_list
Fare
Dichiarazione1
Dichiarazione2
Dichiarazione3
Fatto

Qui, la voce di menu verrà creata da data_list che può essere un array o altra origine dati. Ogni voce di menu recupera da data_list e memorizza in una variabile per creare il menu. Il comando 'Select' può essere utilizzato anche con il comando 'case' per creare il menu. Diversi tipi di attività di creazione di menu sono mostrati qui usando esempi molto semplici.

Esempio-1: creazione di un semplice menu

Crea un file bash denominato Select1.sh Con il seguente script bash. Qui, 'Selezionare' Il comando recupererà ciascun dati dall'elenco e stampa i dati come menu. Il seguente script contiene i marchi dei telefoni cellulari e dopo aver eseguito lo script creerà un menu di marchi mobili e chiederà all'utente di scegliere qualsiasi marchio. Stamperà il nome del marchio selezionato. L'utente deve premere Ctrl+c Per terminare dallo script.

#!/Bin/Bash
# Definisci l'elenco dei menu qui
Seleziona il marchio in Samsung Sony iPhone Symphony Walton
Fare
Echo "Hai scelto $ marchio"
Fatto

Produzione:

Esegui lo script.

$ Bash Select1.sh

Verrà visualizzato il seguente output dopo l'esecuzione dello script e selezionando la voce di menu numero 1 e 4.

Esempio-2: selezionare Comando con un'istruzione Caso

Come è possibile creare un menu bash con l'istruzione Case è mostrato in questo esempio. Crea un file bash denominato Select2.sh Con il seguente script bash. Dopo aver eseguito lo script, l'utente selezionerà qualsiasi voce di menu e istruzione Caso corrisponderà al valore selezionato con il valore del caso. Qui vengono utilizzati più valori di casi per abbinamento con la voce di menu selezionata. Se nessuno del valore del caso corrisponde alla voce di menu selezionata, la "voce non valida" verrà stampata.

#!/Bin/Bash
echo "quale sistema operativo ti piace?"
# I nomi del sistema operativo vengono utilizzati qui come origine dati
Seleziona il sistema operativo in Ubuntu LinuxMint Windows8 Windowsxp
Fare
Caso $ os in
# I due valori di casi sono dichiarati qui per la corrispondenza
"Ubuntu" | "LinuxMint")
echo "Uso anche $ os."
;;
# Tre valori di casi sono dichiarati qui per la corrispondenza
"Windows8" | "Windows7" ​​| "Windows XP")
echo "Perché non provi Linux?"
;;
# Corrispondenza con dati non validi
*)
Echo "Ingresso non valido."
rottura
;;
Esac
Fatto

Produzione:
Esegui lo script.

$ Bash Select2.sh

L'output diverso apparirà per una selezione diversa. Qui, 1 è selezionato la prima volta che è Ubuntu. si abbina al valore del primo caso stampare il messaggio "Uso anche Ubuntu". 4 è selezionato la prossima volta e la voce di menu è Windows 7 Ma non c'è valore caso con questo nome. Quindi, questa volta ha stampato "Inserimento non valido" e terminare dallo script.

Esempio-3: creazione di menu bash nidificato

Quando viene creato un menu nel menu dell'altro, viene chiamato un menu nidificato. Il menu nidificato può essere creato nella base utilizzando due o più istruzioni di selezione e casi. Crea un file bash denominato Select3.sh Con il seguente script bash. Qui, vengono utilizzate due istruzioni di selezione e casi per implementare il menu nidificato. Il menu principale contiene 4 elementi e il sottomenu contiene 3 elementi qui.

#!/Bin/Bash
mentre è vero
Fare
# Voci di menu genitore dichiarate qui
Selezionare l'elemento nell'HDD monitor della stampante mouse
Fare
# Dichiarazione del caso per confrontare le prime voci di menu
Caso $ articolo in
Topo)
echo "che tipo di monitor ti piace?"
;;
Stampante)
# Articoli sub-menu qui dichiarati qui
Seleziona sub_item in samsung hp dell
Fare
# Dichiarazione del caso per gli articoli Sun-Menu
Caso $ sub_item in
SAMSUNG)
Echo "Il prezzo della stampante Samsung è di $ 100"
rottura
;;
HP)
Echo "La stampante di prezzo della stampante HP 880 è $ 450"
# Torna al menu dei genitori
rottura
;;
Dell)
Echo "No Dell Stampter è ora disponibile"
# torna al menu principale
Break 2
;;
Esac
Fatto
rottura
;;
Tenere sotto controllo)
Echo "Acquista il nostro nuovo monitor Samsung a basso costo"
Break # Torna al menu corrente (principale)
;;
DISCO FISSO)
Echo "HDD di buona qualità sono disponibili nel titolo"
# Torna dallo script
Break 2
Esac
Fatto
Fatto

Produzione:

Esegui lo script.

$ Bash Select3.sh

Dopo aver eseguito lo script, il menu principale con 4 elementi visualizzati. Qui, solo la seconda voce di menu del menu principale contiene sottomenu. Dopo aver selezionato 2, è apparso il sottomenu e quando l'utente ha selezionato 3, ha visualizzato il messaggio di corrispondenza della voce di menu 3 e tornare al menu Parent.

Esempio-4: crea un menu bash con un array

Una variabile di array può archiviare più dati. Quindi, puoi utilizzare un array come elenco di dati per la creazione di un menu di base. Come è possibile utilizzare un array con un'istruzione selezionata per creare un menu è mostrato in questo esempio. Crea un file bash denominato Select4.sh Con il seguente script bash. Bash Subroutine viene utilizzata in questo script per creare un menu dall'array. Viene utilizzato un array con tre elementi e menu_from_array () è chiamato per creare il menu. Lo script controllerà che il numero della voce di menu selezionato è compreso tra 1-3 o no. Se il numero non rientra in questo intervallo, indicherà l'utente selezionarlo all'interno di questo intervallo, verrà visualizzato la voce di menu con altri testo.

#!/Bin/Bash
menu_from_array ()

scegliere oggetto; Fare
# Controlla il numero della voce di menu selezionato
if [1 -le "$ risposta"] && ["$ risposta" -le $#];
Poi
Echo "Il sistema operativo selezionato è $ Item"
rottura;
altro
Echo "Selezione sbagliata: selezionare qualsiasi numero da 1-$#"
fi
Fatto

# Dichiara l'array
Linux = ('Ubuntu' 'Linux Mint' 'centos')
# Chiama la subroutine per creare il menu
menu_from_array "$ linux [@]"

Produzione:

Esegui lo script.

$ Bash Select4.sh

Qui, 2 è selezionato per primo che è all'interno della gamma e stampato il testo. 6 è selezionato la seconda volta che è fuori portata e suggerisce che l'utente seleziona un numero all'interno dell'intervallo.


Per capire questo codice dovremmo imparare alcuni trucchi 😉

  • Perché il In Elenco non è fornito nei parametri posizionali selezionati che sono in questo caso le parole nell'array passate alla funzione
  • $ Rispondi memorizza l'input del valore da parte dell'utente
  • Il logico se e condizionale nella funzione sta verificando la risposta è compresa tra 1 e la dimensione dell'array di parametri posizionali

Conclusione

L'attività di creazione del menu bash utilizzando un'istruzione selezionata è spiegata in questo tutorial il più semplice possibile. Ci sono molti modi semplici e fantasiosi per usare Select in Bash quando creano menu e speriamo che questi esempi ti diano un punto di partenza per creare le tue combinazioni.