Sintaksa:
izberite v v seznamu podatkovnaredi
izjava1
Izjava2
Izjava3
Končano
Tu bo element menija ustvarjen s seznama podatkov, ki je lahko matrika ali drug vir podatkov. Vsak element menija pridobi s seznama podatkov in shrani v spremenljivko, da ustvari meni. Ukaz 'Select' lahko uporabite z ukazom 'case' tudi za ustvarjanje menija. Tu so na zelo preprostih primerih prikazane različne vrste nalog za ustvarjanje menijev.
Primer-1: Ustvarjanje preprostega menija
Ustvari bash datoteko z imenom izberite1.sh z naslednjim bash skriptom. Tukaj, 'izberite' ukaz bo pridobil vse podatke s seznama in jih natisnil kot meni. Naslednji skript vsebuje imena blagovnih znamk mobilnih telefonov in po izvedbi skripta bo ustvaril meni mobilnih znamk in uporabnika prosil, naj izbere katero koli znamko. Natisnil bo ime izbrane blagovne znamke. Uporabnik mora pritisniti Ctrl + c končati iz skripta.
#!/ bin / bash# Tu določite seznam menijev
izberite znamko v Samsung Sony iphone symhony Walton
naredi
echo "Izbrali ste znamko $"
Končano
Izhod:
Zaženite skript.
$ bash select1.shNaslednji izhod se prikaže po zagonu skripta in izbiri elementa menija številka 1 in 4.
Primer-2: izberite ukaz s stavkom primera
V tem primeru je prikazano, kako lahko ustvarite bash meni s stavkom primera. Ustvari bash datoteko z imenom izberite2.sh z naslednjim bash skriptom. Po zagonu skripta bo uporabnik izbral kateri koli element menija in stavek primera se bo izbrani vrednosti ujemal z vrednostjo primera. Tu se za ujemanje z izbranim elementom menija uporablja več vrednosti velikih črk. Če se nobena vrednost primera ne ujema z izbranim elementom menija, se natisne »Neveljaven vnos«.
#!/ bin / bashecho "Kateri operacijski sistem vam je všeč?"
# Imena operacijskega sistema se tukaj uporabljajo kot vir podatkov
izberite os v Ubuntu LinuxMint Windows8 Windows7 WindowsXP
naredi
primera $ os v
# Za ujemanje sta tukaj navedeni dve vrednosti primerov
"Ubuntu" | "LinuxMint")
echo "Uporabljam tudi $ os."
;;
# Za ujemanje so tukaj navedene tri vrednosti primerov
"Windows8" | "Windows10" | "WindowsXP")
echo "Zakaj ne poskusite Linuxa?"
;;
# Ujemanje z neveljavnimi podatki
*)
echo "Neveljaven vnos."
odmor
;;
esac
Končano
Izhod:
Zaženite skript.
Za različne izbire se bodo pojavili različni izhodi. Tu je prvič izbran 1, ki je Ubuntu. ujema se s prvo vrednostjo tiska sporočilo "Uporabljam tudi Ubuntu". Naslednjič je izbran 4 in element menija je Windows 7 vendar s tem imenom ni vrednosti primera. Torej, tokrat je natisnjeno "Neveljaven vnos" in konča iz skripta.
Primer-3: Ustvarjanje ugnezdenega bash menija
Ko se kateri koli meni ustvari pod menijem drugega, se imenuje ugnezdeni meni. Vgnezden meni lahko v osnovnem delu ustvarite z uporabo dveh ali več stavkov select in case. Ustvari bash datoteko z imenom izberite3.sh z naslednjim bash skriptom. Tu sta za izvajanje ugnezdenega menija uporabljena dva stavka select in case. Nadrejeni meni vsebuje 4 elemente, podmeni pa tukaj 3 elemente.
#!/ bin / bashčeprav resnično
naredi
# Tukaj so prijavljeni nadrejeni elementi menija
izberite element na Mouse Printer Monitor HDD
naredi
# stavek za primerjavo prvih elementov menija
primeru $ item v
Miška)
echo "Katera vrsta monitorja vam je všeč?"
;;
Tiskalnik)
# Tu navedeni elementi podmenija
izberite podtemo v Samsung HP Dell
naredi
# stavek za elemente menija za sonce
primer $ sub_item v
Samsung)
echo "Cena tiskalnika samsung je 100 USD"
odmor
;;
HP)
echo "Nov tiskalnik HP 880 s tiskalnikom stane 450 USD"
# vrnitev v nadrejeni meni
odmor
;;
Dell)
echo "Noben tiskalnik Dell zdaj ni na voljo"
# vrnitev v nadrejeni meni
odmor 2
;;
esac
Končano
odmor
;;
Monitor)
echo "Kupite naš novi monitor Samsung po nizki ceni"
break # vrnitev v trenutni (glavni) meni
;;
Trdi disk)
echo "Na zalogi so na voljo trdi diski dobre kakovosti"
# vrnitev iz skripta
odmor 2
esac
Končano
Končano
Izhod:
Zaženite skript.
$ bash select3.shPo zagonu skripta se prikaže nadrejeni meni s 4 elementi. Tukaj samo drugi element menija nadrejenega menija vsebuje podmeni. Po izbiri 2 se je pojavil podmeni in ko je uporabnik izbral 3, je prikazal ujemajoče se sporočilo točke 3 in se vrnil v nadrejeni meni.
Primer-4: Ustvari bash meni z matriko
Spremenljivka matrike lahko shrani več podatkov. Tako lahko matriko uporabite kot seznam podatkov za ustvarjanje osnovnega menija. V tem primeru je prikazano, kako lahko uporabite matriko z izjavo select za ustvarjanje menija. Ustvari bash datoteko z imenom izberite4.sh z naslednjim bash skriptom. Podprogram Bash se v tem skriptu uporablja za ustvarjanje menija iz polja. Uporabljena je matrika s tremi elementi in menu_from_array () se pokliče za ustvarjanje menija. Skript bo preveril, ali je izbrana številka elementa menija med 1-3 ali ne. Če številka ni znotraj tega obsega, bo uporabniku naročil, naj jo izbere znotraj tega obsega, natisne izbrani element menija z drugim besedilom.
menu_from_array ()izberite element; naredi
# Preverite številko izbranega elementa menija
če je [1-le "$ REPLY"] && ["$ REPLY" -le $ #];
potem
echo "Izbrani operacijski sistem je $ item"
odmor;
drugače
echo "Napačna izbira: izberite katero koli številko med 1 - $ #"
fi
Končano
# Razglasite polje
linux = ('Ubuntu' 'Linux Mint' 'CentOS')
# Pokličite podprogram, da ustvarite meni
menu_from_array "$ linux [@]"
Izhod:
Zaženite skript.
$ bash select4.shTu je najprej izbran 2, ki je znotraj obsega, in natisnil besedilo. 6 je drugič izbran zunaj dosega in predlaga uporabniku, da izbere številko znotraj obsega.
Zaključek
Naloga ustvarjanja menija Bash z uporabo stavka select je v tej vadnici razložena čim bolj preprosto. Upam, da bo programer, ki ga zanima delo v meniju bash in se nauči izjave bash select, dobil pomoč iz te vadnice. Hvala vam.