Süntaks:
valige data_listis vtegema
avaldus1
Avaldus2
Avaldus3
tehtud
Siin luuakse menüüpunkt data_list, mis võib olla massiiv või muu andmeallikas. Iga menüüelement hankitakse andmeloendist ja salvestatakse menüü loomiseks muutujasse. 'Select' käsku saab kasutada ka 'case' käsuga ka menüü loomiseks. Erinevate menüüloomeülesannete tüübid on siin näidatud väga lihtsate näidete abil.
Näide 1: lihtsa menüü loomine
Looge bash-fail nimega valige1.sh järgmise bashi skriptiga. Siin, 'vali' käsk otsib kõik andmed loendist ja prindib andmed menüüna. Järgmine skript sisaldab mobiiltelefonide kaubamärke ja pärast skripti käivitamist loob see mobiilibrändide menüü ja palub kasutajal valida mis tahes kaubamärk. See prindib valitud kaubamärgi nime. Kasutaja peab vajutama Ctrl + c skripti lõpetamiseks.
#!/ bin / bash# Määrake siin menüüloend
valitud kaubamärk Samsungi Sony iphone sümfoonias Walton
tegema
kaja "Olete valinud brändi $"
tehtud
Väljund:
Käivitage skript.
$ bash vali1.shPärast skripti käivitamist ja menüüpunktide numbrite 1 ja 4 valimist kuvatakse järgmine väljund.
Näide 2: Valige käsk koos juhtumilausega
Kuidas saate luua juhtumilausega bash-menüüd, on näidatud selles näites. Looge bash-fail nimega valige2.sh järgmise bashi skriptiga. Pärast skripti käivitamist valib kasutaja mis tahes menüüelemendi ja juhtumilause sobib valitud väärtusega juhtumi väärtusega. Siin kasutatakse valitud menüüüksusega sobitamiseks mitut juhtumi väärtust. Kui ükski suurtähtede väärtusest ei vasta valitud menüüelementidele, prinditakse vale „Vale sisestus“.
#!/ bin / bashkaja "Milline operatsioonisüsteem teile meeldib?"
# Siin kasutatakse andmeallikana operatsioonisüsteemi nimesid
valige Ubuntu Linuxis osMint Windows8 Windows7 WindowsXP
tegema
juhtum $ os sisse
# Sobitamiseks deklareeritakse siin kaks juhtumi väärtust
"Ubuntu" | "LinuxMint")
kaja "Ma kasutan ka $ os."
;;
# Sobitamiseks deklareeritakse siin kolm juhtumi väärtust
"Windows8" | "Windows10" | "WindowsXP")
kaja "Miks te ei prooviks Linuxit?"
;;
# Sobitamine kehtetute andmetega
*)
kaja "Kehtetu sisestus."
murda
;;
esac
tehtud
Väljund:
Käivitage skript.
Erinev väljund kuvatakse erineva valiku jaoks. Siin valitakse 1 esimest korda Ubuntu. see sobis esimese juhtumi väärtusega prindib sõnumi "Ma kasutan ka Ubuntu". 4 valitakse järgmisel korral ja menüüelement on Windows 7 kuid selle nimega juhtumiväärtust pole. Niisiis, seekord trükiti „Kehtetu kanne“ ja lõpetage skriptist.
Näide 3: pesastatud bashi menüü loomine
Kui teise menüüs luuakse mõni menüü, nimetatakse seda pesamenüüks. Pesastatud menüü saab baasi luua, kasutades kahte või enamat valiku- ja juhtumilauset. Looge bash-fail nimega valige3.sh järgmise bashi skriptiga. Siin kasutatakse pesastatud menüü rakendamiseks kahte valiku- ja juhtumilauset. Vanemmenüü sisaldab 4 üksust ja alammenüü sisaldab 3 üksust.
#!/ bin / bashtõsi küll
tegema
# Deklareeritud vanemmenüü üksused
valige üksus menüüs Mouse Printer Monitor HDD
tegema
Esimeste menüüelementide võrdlemiseks # juhtumilause
case $ kirje
Hiir)
kaja "Mis tüüpi monitor teile meeldib?"
;;
Printer)
Siin on deklareeritud # alammenüü üksused
valige Samsung HP Delli alamüksus
tegema
# päikese menüü üksuste juhtumikiri
juhtum $ sub_item sisse
Samsung)
kaja "Samsungi printeri hind on 100 dollarit"
murda
;;
HP)
kaja "Uue HP 880 printeri hinna printer on 450 dollarit"
# naase vanemimenüüsse
murda
;;
Dell)
kaja "Delli printerit pole praegu saadaval"
# naase vanemimenüüsse
paus 2
;;
esac
tehtud
murda
;;
Kuvar)
kaja "Osta soodsalt meie uus Samsungi monitor"
break # naasmine praegusesse (pea) menüüsse
;;
HDD)
kaja "Laos on saadaval hea kvaliteediga kõvakettad"
# skriptilt naasmine
paus 2
esac
tehtud
tehtud
Väljund:
Käivitage skript.
$ bash vali3.shPärast skripti käivitamist kuvatakse vanemimenüü 4 üksusega. Alammenüüd sisaldab siin ainult vanemmenüü teine menüüelement. Pärast valimist 2 ilmus alammenüü ja kui kasutaja valis 3, kuvas see menüüpunkti 3 vastava teate ja naasis vanemimenüüsse.
Näide 4: looge massiiviga bash-menüü
Massiivimuutuja saab salvestada mitut teavet. Niisiis, baasmenüü loomiseks võite massiivi kasutada andmeloendina. Selles menüüs on näidatud, kuidas saab massiivi kasutada valitud lausega menüü loomiseks. Looge bash-fail nimega valige4.sh järgmise bashi skriptiga. Bashi alamprogrammi kasutatakse selles skriptis massiivi menüü loomiseks. Kasutatakse kolme elemendiga massiivi ja menu_from_array () kutsutakse menüüd looma. Skript kontrollib, kas valitud menüüpunkti number on vahemikus 1-3 või mitte. Kui number ei asu selles vahemikus, annab ta kasutajale korralduse seda selles vahemikus valida, prindib valitud menüüelemendi muu tekstiga.
menu_from_array ()vali üksus; tegema
# Kontrollige valitud menüüpunkti numbrit
if [1 -le "$ REPLY"] && ["$ REPLY" -le $ #];
siis
echo "Valitud operatsioonisüsteem on $ item"
murda;
muud
kaja "Vale valik: valige ükskõik milline arv vahemikus 1 - $ #"
fi
tehtud
# Deklareeri massiiv
linux = ('Ubuntu' Linux Mint 'CentOS')
# Menüü loomiseks helistage alamprogrammis
menu_from_array "$ linux [@]"
Väljund:
Käivitage skript.
$ bash vali4.shSiin valitakse kõigepealt 2, mis jääb vahemikku ja printis teksti. 6 valitakse teist korda, mis jääb vahemikku ja soovitab kasutajal valida vahemikus olev number.
Järeldus
Bashi menüü loomise ülesanne valitud lause abil on selles õpetuses selgitatud võimalikult lihtsalt. Loodetavasti saavad kodeerijad, kes on huvitatud bashi menüü kallal töötamisest ja bash selecti avalduse õppimisest, sellest õpetusest abi. Aitäh.