Comandi Linux

Comando di selezione Bash

Comando di selezione Bash
'Selezionare' comando è un comando bash molto utile per la creazione del menu bash. Diversi tipi di attività di generazione di menu, creazione di elenchi di direttori basati su menu, creazione di menu dal contenuto di file, ecc. può essere fatto usando il comando bash select. In questo tutorial viene mostrato come implementare questi tipi di attività utilizzando il comando bash select.

Sintassi:

seleziona v in data_list
fare
dichiarazione1
Dichiarazione2
Dichiarazione3
fatto

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

Esempio 1: creazione di un menu semplice

Crea un file bash chiamato seleziona1.sh con il seguente script bash. Qui, 'Selezionare' comando recupererà ogni dato dall'elenco e stamperà i dati come un menu. Il seguente script contiene i nomi dei 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 terminare dallo script.

#!/bin/bash
# Definisci qui l'elenco dei menu
seleziona il marchio in Samsung Sony iPhone sinfonia Walton
fare
echo "Hai scelto $marca"
fatto

Produzione:

Esegui lo script.

$ bash select1.sh

Il seguente output apparirà dopo aver eseguito lo script e aver selezionato la voce di menu numero 1 e 4.

Esempio 2: comando Select con un'istruzione case

Come è possibile creare un menu bash con l'istruzione case è mostrato in questo esempio. Crea un file bash chiamato seleziona2.sh con il seguente script bash. Dopo aver eseguito lo script, l'utente selezionerà qualsiasi voce di menu e l'istruzione case corrisponderà al valore selezionato con il valore case. Qui vengono utilizzati più valori di caso per la corrispondenza con la voce di menu selezionata. Se nessuno dei valori del caso corrisponde alla voce di menu selezionata, verrà stampato "Inserimento non valido".

#!/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 Windows7 WindowsXP
fare
caso $os in
# Qui vengono dichiarati due valori di caso per la corrispondenza
"Ubuntu"|"LinuxMint")
echo "Uso anche $os."
;;
# Qui vengono dichiarati tre valori di caso per la corrispondenza
"Windows8" | "Windows10" | "Windows XP")
echo "Perché non provi Linux??"
;;
# Corrispondenza con dati non validi
*)
echo "Voce non valida."
rompere
;;
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. corrispondeva al valore del primo caso stampa il messaggio “Uso anche Ubuntu”. 4 viene selezionato la volta successiva e la voce di menu è Windows 7 ma non esiste un valore maiuscolo con questo nome. Quindi, questa volta ha stampato "Inserimento non valido" e terminare dallo script.

Esempio 3: creazione di un menu bash nidificato

Quando un menu viene creato sotto il menu dell'altro, viene chiamato menu nidificato. Il menu annidato può essere creato nella base utilizzando due o più istruzioni select e case. Crea un file bash chiamato seleziona3.sh con il seguente script bash. Qui, vengono utilizzate due istruzioni select e case per implementare il menu annidato. Il menu principale contiene 4 elementi e il sottomenu contiene 3 elementi qui.

#!/bin/bash
mentre vero
fare
# Voci del menu principale dichiarate qui
seleziona l'elemento nel disco rigido del monitor della stampante del mouse
fare
# dichiarazione case per confrontare le prime voci di menu
caso $ articolo in
Topo)
echo "Che tipo di monitor ti piace?"
;;
Stampante)
# Voci del sottomenu qui dichiarate qui
seleziona sub_item in Samsung HP Dell
fare
# dichiarazione case per le voci del menu solare
case $sub_item in
Samsung)
echo "Il prezzo della stampante Samsung è $ 100"
rompere
;;
HP)
echo "Il prezzo della nuova stampante HP 880 è $ 450"
# torna al menu principale
rompere
;;
Dell)
echo "Nessuna stampante Dell è disponibile ora"
# torna al menu principale
pausa 2
;;
esac
fatto
rompere
;;
Tenere sotto controllo)
echo "Compra il nostro nuovo monitor Samsung a basso costo"
break # torna al menu corrente (principale)
;;
HDD)
echo "Disponibili HDD di buona qualità a magazzino"
# ritorno dallo script
pausa 2
esac
fatto
fatto

Produzione:

Esegui lo script.

$ bash select3.sh

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

Esempio-4: creare un menu bash con un array

Una variabile array può memorizzare più dati. Quindi, puoi usare un array come elenco di dati per creare un menu di base. In questo esempio viene mostrato come utilizzare un array con un'istruzione select per creare un menu. Crea un file bash chiamato seleziona4.sh con il seguente script bash. La subroutine Bash viene utilizzata in questo script per creare un menu dall'array. Viene utilizzato un array con tre elementi e menu_from_array() viene chiamato per creare il menu. Lo script controllerà che il numero della voce di menu selezionata sia compreso tra 1-3 o meno. Se il numero non rientra in questo intervallo, indicherà all'utente di selezionarlo all'interno di questo intervallo, stamperà la voce di menu Seleziona con altro testo.

menu_from_array()

scegliere oggetto; fare
# Controlla il numero della voce di menu selezionata
if [ 1 -le "$REPLY" ] && [ "$REPLY" -le $# ];
poi
echo "Il sistema operativo selezionato è $item"
rompere;
altro
echo "Selezione errata: seleziona un numero qualsiasi 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, viene selezionato per primo 2 che rientra nell'intervallo e stampato il testo. 6 viene selezionato la seconda volta che è fuori intervallo e suggerisce all'utente di selezionare un numero all'interno dell'intervallo.

Conclusione

L'attività di creazione del menu Bash utilizzando un'istruzione select è spiegata in questo tutorial nel modo più semplice possibile. Spero che il programmatore interessato a lavorare sul menu bash e ad apprendere l'istruzione bash select riceverà aiuto da questo tutorial. Grazie.

Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...
Come utilizzare GameConqueror Cheat Engine in Linux
L'articolo copre una guida sull'utilizzo del motore cheat GameConqueror in Linux. Molti utenti che giocano su Windows utilizzano spesso l'applicazione...
I migliori emulatori di console di gioco per Linux
Questo articolo elencherà il popolare software di emulazione della console di gioco disponibile per Linux. L'emulazione è un livello di compatibilità ...