Syntaxis:
selecteer v in data_listDoen
verklaring1
Verklaring2
Verklaring3
gedaan
Hier wordt het menu-item gemaakt op basis van de data_list die een array of een andere gegevensbron kan zijn. Elk menu-item wordt opgehaald uit de data_list en opgeslagen in een variabele om het menu te maken. Het 'Select'-commando kan ook worden gebruikt met het 'case'-commando om het menu te maken. Verschillende soorten taken voor het maken van menu's worden hier getoond aan de hand van zeer eenvoudige voorbeelden.
Voorbeeld-1: Een eenvoudig menu maken
Maak een bash-bestand met de naam selecteer1.sh met het volgende bash-script:. Hier, 'selecteren' commando haalt alle gegevens uit de lijst op en drukt de gegevens af als een menu. Het volgende script bevat de merknamen van mobiele telefoons en na het uitvoeren van het script zal het een menu met mobiele merken maken en de gebruiker vragen om een willekeurig merk te kiezen. Het zal de naam van het geselecteerde merk afdrukken. De gebruiker moet op drukken Ctrl+c beëindigen vanuit het script the.
#!/bin/bash# Definieer hier de menulijst
selecteer merk in Samsung Sony iphone symfonie Walton
Doen
echo "Je hebt $brand gekozen"
gedaan
Uitgang:
Voer het script uit.
$ bash selecteren1.shDe volgende uitvoer verschijnt na het uitvoeren van het script en het selecteren van menu-item nummer 1 en 4.
Voorbeeld-2: Selecteer opdracht met een case-statement
Hoe u een bash-menu met case-statement kunt maken, wordt in dit voorbeeld getoond. Maak een bash-bestand met de naam selecteer2.sh met het volgende bash-script:. Nadat het script is uitgevoerd, selecteert de gebruiker een menu-item en de case-instructie komt overeen met de geselecteerde waarde met de case-waarde. Hier worden meerdere hoofdletters gebruikt om te matchen met het geselecteerde menu-item. Als geen van de hoofdletters overeenkomt met het geselecteerde menu-item, wordt "Ongeldige invoer" afgedrukt.
#!/bin/bashecho "Welk besturingssysteem vind je leuk??"
# Namen van besturingssystemen worden hier gebruikt als gegevensbron
selecteer os in Ubuntu LinuxMint Windows8 Windows7 WindowsXP
Doen
geval $os in
# Twee case-waarden worden hier gedeclareerd voor matching
"Ubuntu"|"LinuxMint")
echo "Ik gebruik ook $os."
;;
# Drie case-waarden worden hier gedeclareerd voor matching
"Windows8" | "Windows10" | "Windows XP")
echo "Waarom probeer je Linux niet??"
;;
# Matching met ongeldige gegevens
*)
echo "Ongeldige invoer."
breken
;;
esac
gedaan
Uitgang:
Voer het script uit.
De verschillende output zal verschijnen voor verschillende selectie. Hier wordt 1 de eerste keer geselecteerd dat Ubuntu is. het kwam overeen met de eerste hoofdletterwaarde druk het bericht af “Ik gebruik ook Ubuntu”. 4 is de volgende keer geselecteerd en het menu-item is Windows7 maar er is geen case-waarde met deze naam. Dus deze keer gedrukt "Ongeldige invoer" en beëindigen vanuit het script.
Voorbeeld-3: Genest bash-menu maken
Wanneer een menu is gemaakt onder het menu van de ander, wordt het een genest menu genoemd. Het geneste menu kan in de basis worden gemaakt door twee of meer select- en case-statements te gebruiken. Maak een bash-bestand met de naam selecteer3.sh met het volgende bash-script:. Hier worden twee select- en case-statements gebruikt om het geneste menu te implementeren. Het bovenliggende menu bevat 4 items en het submenu bevat hier 3 items.
#!/bin/bashterwijl het waar is
Doen
# Bovenliggende menu-items hier gedeclareerd
selecteer item in Muis Printer Monitor HDD
Doen
# case-statement om de eerste menu-items te vergelijken
geval $item in
Muis)
echo "Welk type monitor vind je leuk??"
;;
Printer)
# Submenu-items hier aangegeven hier
selecteer sub_item in Samsung HP Dell
Doen
# case-statement voor sun-menu-items
case $sub_item in
Samsung)
echo "De prijs van een Samsung-printer is $ 100"
breken
;;
PK)
echo "Nieuwe HP 880 printer prijs printer is $450"
# terug naar bovenliggende menu
breken
;;
Dell)
echo "Er is nu geen Dell-printer beschikbaar"
# terug naar het bovenliggende menu
breken 2
;;
esac
gedaan
breken
;;
Monitor)
echo "Koop onze nieuwe Samsung Monitor tegen lage kosten"
break # terug naar huidig (hoofd)menu
;;
harde schijf)
echo "Goede kwaliteit HDD zijn op voorraad"
# terugkeer uit het script
breken 2
esac
gedaan
gedaan
Uitgang:
Voer het script uit.
$ bash selecteren3.shNadat het script is uitgevoerd, wordt het bovenliggende menu met 4 items weergegeven. Hier bevat alleen het tweede menu-item van het bovenliggende menu een submenu. Na het selecteren van 2 verscheen het submenu en toen de gebruiker 3 selecteerde, werd het bijbehorende bericht van menu-item 3 weergegeven en keerde terug naar het hoofdmenu.
Voorbeeld-4: Maak een bash-menu met een array
Een arrayvariabele kan meerdere gegevens opslaan. U kunt dus een array gebruiken als een gegevenslijst voor het maken van een basismenu. Hoe u een array met een select-statement kunt gebruiken om een menu te maken, wordt in dit voorbeeld getoond. Maak een bash-bestand met de naam selecteer4.sh met het volgende bash-script:. Bash-subroutine wordt in dit script gebruikt om een menu van de array te maken. Er wordt een array met drie elementen gebruikt en menu_from_array () wordt geroepen om het menu te maken. Het script controleert of het geselecteerde menu-itemnummer tussen 1-3 ligt of niet. Als het nummer niet binnen dit bereik valt, zal het de gebruiker instrueren om het binnen dit bereik te selecteren, het zal het menu-item selecteren met andere tekst afdrukken.
menu_from_array ()selecteer item; Doen
# Controleer het geselecteerde menu-itemnummer
if [ 1 -le "$REPLY" ] && [ "$REPLY" -le $# ];
dan
echo "Het geselecteerde besturingssysteem is $item"
breken;
anders
echo "Verkeerde selectie: selecteer een willekeurig nummer uit 1-$#"
fi
gedaan
# Declareer de array
linux=('Ubuntu' 'Linux Mint' 'CentOS')
# Roep de subroutine op om het menu te maken
menu_from_array "$linux[@]"
Uitgang:
Voer het script uit.
$ bash selecteren4.shHier wordt eerst 2 geselecteerd die binnen het bereik valt en de tekst wordt afgedrukt. 6 wordt de tweede keer geselecteerd dat buiten bereik is en stel voor dat de gebruiker een nummer binnen het bereik selecteert.
Conclusie
De taak om het bash-menu te maken met behulp van een select-statement wordt in deze tutorial zo eenvoudig mogelijk uitgelegd. Hope, de programmeur die geïnteresseerd is om aan het bash-menu te werken en bash select-statement te leren, krijgt hulp van deze tutorial. Dank u.