Linux-kommandoer

Bash Vælg kommando

Bash Vælg kommando
''Vælg'kommando er en meget nyttig bash-kommando til oprettelse af bash-menu. Forskellige typer menuopgaver, oprettelse af menubaseret instruktørliste, oprettelse af en menu ud fra filindhold osv. kan gøres ved hjælp af bash select-kommandoen. Hvordan du kan implementere disse typer opgaver ved hjælp af kommandoen bash select vises i denne vejledning.

Syntaks:

vælg v i datalisten
gør
erklæring1
Erklæring2
Erklæring3
Færdig

Her oprettes menupunktet fra datalisten, der kan være et array eller en anden datakilde. Hvert menupunkt hentes fra data_listen og gemmes i en variabel for at oprette menuen. 'Select' -kommandoen kan også bruges med 'case' -kommandoen til at oprette menuen. Forskellige typer af menuoprettelsesopgaver vises her ved hjælp af meget enkle eksempler.

Eksempel 1: Oprettelse af en simpel menu

Opret en bash-fil med navnet vælg 1.sh med følgende bash-script. Her, 'Vælg' kommando henter hver data fra listen og udskriver dataene som en menu. Følgende script indeholder brandnavne på mobiltelefoner, og efter at scriptet er udført, opretter det en menu med mobile brands og beder brugeren om at vælge ethvert brand. Det udskriver navnet på det valgte mærke.  Brugeren skal trykke på Ctrl + c at afslutte fra scriptet.

#!/ bin / bash
# Definer menulisten her
vælg mærke i Samsung Sony iphone symphony Walton
gør
ekko "Du har valgt $ brand"
Færdig

Produktion:

Kør scriptet.

$ bash select1.sh

Følgende output vises efter kørsel af scriptet og valg af menupunkt nummer 1 og 4.

Eksempel 2: Vælg kommando med en sagserklæring

Hvordan du kan oprette en bash-menu med sagsangivelse vises i dette eksempel. Opret en bash-fil med navnet vælg2.sh med følgende bash-script. Efter kørsel af scriptet vælger brugeren et hvilket som helst menupunkt, og sagsudtalelsen matcher den valgte værdi med sagsværdien. Her bruges flere sagsværdier til at matche det valgte menupunkt. Hvis ingen af ​​sagsværdierne stemmer overens med det valgte menupunkt, udskrives "Ugyldig indtastning".

#!/ bin / bash
ekko "Hvilket operativsystem kan du lide?"
# Operativsystemnavne bruges her som datakilde
vælg os i Ubuntu LinuxMint Windows8 Windows7 WindowsXP
gør
tilfælde $ os i
# To sagsværdier er deklareret her til matchning
"Ubuntu" | "LinuxMint")
ekko "Jeg bruger også $ os."
;;
# Tre sagsværdier er deklareret her til matchning
"Windows8" | "Windows10" | "WindowsXP")
ekko "Hvorfor prøver du ikke Linux?"
;;
# Matcher med ugyldige data
*)
ekko "Ugyldig post."
pause
;;
esac
Færdig

Produktion:
Kør scriptet.

$ bash select2.sh

De forskellige output vises for forskellige valg. Her vælges 1 første gang, det er Ubuntu. det matchede den første sags værdi udskriv meddelelsen "Jeg bruger også Ubuntu". 4 vælges næste gang, og menupunktet er Windows 7 men der er ingen sagsværdi med dette navn. Så denne gang trykte den “Ugyldig post” og afslut fra scriptet.

Eksempel 3: Oprettelse af indlejret bash-menu

Når en menu oprettes under den andres menu, kaldes den en indlejret menu. Den indlejrede menu kan oprettes i basen ved hjælp af to eller flere udsagn om valg og sag. Opret en bash-fil med navnet vælg 3.sh med følgende bash-script. Her bruges to markeringer og sagserklæringer til at implementere den indlejrede menu. Forældermenuen indeholder 4 emner, og undermenuen indeholder 3 emner her.

#!/ bin / bash
mens det er sandt
gør
# Forældermenupunkter, der er angivet her
vælg element i Mus Printer Monitor HDD
gør
# case statement for at sammenligne de første menupunkter
sag $ vare i
Mus)
ekko "Hvilken type skærm kan du lide?"
;;
Printer)
# Undermenupunkter her erklæret her
vælg sub_item i Samsung HP Dell
gør
# sagserklæring for solmenupunkter
tilfælde $ sub_item i
Samsung)
ekko "Prisen på Samsung printer er $ 100"
pause
;;
HP)
ekko "Ny HP 880 printerprinter er $ 450"
# vende tilbage til forældermenuen
pause
;;
Dell)
ekko "Ingen Dell-printer er tilgængelig nu"
# vende tilbage til forældermenuen
pause 2
;;
esac
Færdig
pause
;;
Overvåge)
ekko "Køb vores nye Samsung-skærm til en lav pris"
break # gå tilbage til den aktuelle (hoved) menu
;;
HDD)
ekko "HDD af god kvalitet er på lager"
# return fra scriptet
pause 2
esac
Færdig
Færdig

Produktion:

Kør scriptet.

$ bash select3.sh

Efter kørsel af scriptet vises forældermenuen med 4 elementer. Her indeholder kun det andet menupunkt i overordnet menu undermenu. Efter valg af 2 dukkede undermenuen op, og da brugeren valgte 3, viste den den matchende besked for menupunkt 3 og vend tilbage til forældermenuen.

Eksempel 4: Opret en bash-menu med en matrix

En arrayvariabel kan gemme flere data. Så du kan bruge et array som en dataliste til at oprette en basemenu. Hvordan du kan bruge et array med en select-sætning til at oprette en menu vises i dette eksempel. Opret en bash-fil med navnet vælg4.sh med følgende bash-script. Bash-underrutine bruges i dette script til at oprette en menu fra arrayet. Der bruges en matrix med tre elementer og menu_fra_array () kaldes for at oprette menuen. Scriptet kontrollerer, at det valgte menupunktnummer er mellem 1-3 eller ikke. Hvis nummeret ikke er inden for dette interval, vil det instruere brugeren om at vælge det inden for dette interval, det vil udskrive det valgte menupunkt med anden tekst.

menu_fra_array ()

vælg emne; gør
# Kontroller det valgte menupunktnummer
hvis [1-le "$ REPLY"] && ["$ REPLY" -le $ #];
derefter
ekko "Det valgte operativsystem er $ item"
pause;
andet
ekko "Forkert valg: Vælg et hvilket som helst tal fra 1 - $ #"
fi
Færdig

# Erklær arrayet
linux = ('Ubuntu' 'Linux Mint' 'CentOS')
# Ring til underrutinen for at oprette menuen
menu_fra_array "$ linux [@]"

Produktion:

Kør scriptet.

$ bash select4.sh

Her vælges 2 først inden for området og udskriver teksten. 6 vælges anden gang, der er uden for området, og foreslår, at brugeren vælger et nummer inden for området.

Konklusion

Opgaven til oprettelse af bashmenuen ved hjælp af en udvalgserklæring forklares i denne vejledning så enkelt som muligt. Håber, koderen, der er interesseret i at arbejde på bash-menuen og lære bash select-erklæring, får hjælp fra denne vejledning. tak skal du have.

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...