Linux-komennot

Esimerkki Linuxin getoptsista

Esimerkki Linuxin getoptsista
“Getopts” on erittäin hyödyllinen komento Linuxissa, joka on enimmäkseen sisällytetty bash-skripteihin ottamaan liput ja argumentit käyttäjän panoksina. Yksityiskohtaisemmin tämän komennon käytöstä Linux Mint 20: ssä jaamme kanssasi kaksi erilaista esimerkkiä sen käytöstä tässä artikkelissa.

“Getopts” -esimerkkejä Linux Mint 20:

Linux Mint 20: n "getopts" -komennon helpottamiseksi ja ymmärtämiseksi olemme suunnitelleet sinulle kaksi esimerkkitilannetta. Ennen kuin jatkat näihin skenaarioihin, voit tutustua Linux Mint 20 -päätteen getopts-komennon ohjekirjaan, jotta saat perusajatuksen tämän komennon syntaksista. Näet tämän komennon ohjekirjan suorittamalla "help" -komennon:

$ getopts --apu

"Getopts" -komennon ohjekirja sisältää lyhyen kuvauksen tämän komennon käytöstä sekä sen syntaksista, kuten alla olevassa kuvassa näkyy:

Nyt kun olemme käyneet läpi getopts-komennon ohjekirjan, voimme jatkaa esimerkkitapauksia seuraavasti:

Tapaus # 1: Lippujen välittäminen Bash-komentosarjaan sen suorittamista varten Linux Mint 20:

Tässä esimerkissä luomme bash-komentosarjan, joka ottaa lipun käyttäjän panokseksi yhdessä kyseisen bash-komentosarjan suorituskomennon kanssa. Annetun lipun arvosta riippuen vastaava lähtö näytetään. Tämän skenaarion vaiheiden yksityiskohtainen kuvaus on seuraava:

Vaihe 1: Bash-komentosarjan kirjoittaminen:

Ensin kirjoitamme bash-komentosarjan kotihakemistoon. Olemme nimenneet tämän tiedoston getopteiksi.sh. Tämän bash-komentosarjan sisältö näkyy alla olevassa kuvassa. Alla olevassa bash-komentosarjassa meillä on "while" -silmukka, joka toimii "getopts" -komennolla. Tässä tätä "getopts" -komentoa käytetään ottamaan lippu käyttäjän syötteeksi. Tämän lipun arvo voi olla joko "r", "y" tai "g", jotka edustavat vastaavasti "punaista", "keltaista" ja "vihreää" väriä. Muuttujaa “option” käytetään käyttäjän toimittaman lipun arvon tallentamiseen. Sitten olemme käyttäneet toimitetun lipun arvossa tapauslauseketta, joka näyttää mukautetun viestin riippuen vaihtoehdon lipun arvosta. Lopuksi olemme sulkeneet "tapaus" -lohkon "esac" -lausekkeella ja "tee"-lohkon "valmis" -lausekkeella.

Vaihe 2: Testaa Bash-komentosarja:

Kun olet luonut ja tallentanut bash-komentosarjamme, on aika suorittaa se. Testaamme kaikki tapaukset yksitellen. Ensinnäkin suoritamme bash-komentosarjan "-r" -lipun kanssa nähdäksesi, tuottaako se oikean tuloksen vai ei seuraavalla tavalla:

$ bash getopts.sh -r

Bash-komentosarjamme räätälöity tuotos ”-r” -lipulla näkyy alla olevassa kuvassa:

Suoritamme nyt bash-komentosarjan ”-y” -lipulla, jotta voimme nähdä, tuottaako se oikean tuloksen vai ei seuraavalla tavalla:

$ bash getopts.Hei

Bash-komentosarjamme räätälöity tuotos "-y" -lipulla näkyy alla olevassa kuvassa:

Suoritamme nyt bash-komentosarjan ”-g” -lipulla, jotta voimme nähdä, tuottaako se oikean tuloksen vai ei seuraavalla tavalla:

$ bash getopts.sh -g

Bash-komentosarjamme räätälöity tuotos ”-g” -lipulla näkyy alla olevassa kuvassa:

Lopuksi suoritamme bash-komentosarjamme millä tahansa satunnaisella lipulla, ts.e. lippu, joka ei kelpaa, tai lippu, jota ei mainita bash-kirjoituksissamme, sanoo ”-a” seuraavalla tavalla:

$ bash getopts.sh -a

Tällä kertaa bash-komentosarjamme oletustapaus on suoritettu, mikä on osoittanut virheilmoituksen, koska olemme käyttäneet virheellistä lippua.

Tapaus # 2: Lippujen ja argumenttien välittäminen Bash-komentosarjaan sen suorittamiseksi Linux Mint 20:

Tässä esimerkissä luomme bash-komentosarjan, joka ottaa lipun ja argumentin käyttäjän panokseksi yhdessä kyseisen bash-komentosarjan suorituskomennon kanssa. Annetun lipun ja argumentin arvosta riippuen vastaava tuotos tuotetaan. Tämän skenaarion vaiheiden yksityiskohtainen kuvaus on seuraava:

Vaihe 1: Bash-komentosarjan kirjoittaminen:

Tässä tapauksessa käytetty bash-komentosarja näkyy alla olevassa kuvassa ja on hyvin samanlainen kuin tapauksessamme # 1 luomamme. Ainoa ero on, että tällä kertaa emme salli useita lippuja. Käyttäjä saa syöttää vain ”-r” -lipun. Bash-komentosarjassa olevan r-lipun jälkeen oleva kaksoispiste “:” osoittaa kuitenkin, että käyttäjän on myös annettava argumentti lipun kanssa. Tämä argumentti tallennetaan oletusmuuttujaan OPTARG. Esitetyn argumentin arvon näyttämiseksi komento “echo” kanssa olemme käyttäneet symbolia “$” ennen muuttujaa ”OPTARG”.

Vaihe 2: Testaa Bash-komentosarja:

Tämän bash-komentosarjan tallentamisen jälkeen on nyt aika testata se. Jälleen testataan kaikki tapaukset yksitellen. Ensinnäkin suoritamme bash-komentosarjan "-r" -lipulla ja esimerkkiargumentilla "black", jotta voimme nähdä, tuottaako se oikean tuloksen vai ei seuraavalla tavalla:

$ bash getopts.sh -r musta

Bash-komentosarjamme räätälöity tuotos, jossa on -r-lippu ja "musta"-argumentti, näkyy alla olevassa kuvassa:

Testataan nyt tämä komentosarja virheellisellä lipulla ja kelvollisella argumentilla seuraavalla tavalla:

$ bash getopts.sh - musta

Tällä kertaa bash-komentosarjamme oletustapaus on suoritettu, mikä on osoittanut virheilmoituksen, koska olemme käyttäneet virheellistä lippua.

Suoritamme nyt tämän bash-komentosarjan jättämällä lipun pois ja välitämme vain kelvollisen argumentin seuraavalla tavalla:

$ bash getopts.sh musta

Tällä kertaa ei lähtöä tuoteta terminaalissa tai toisin sanoen bash-komentosarjamme ei toteudu, koska olemme ohittaneet pakollisen lipun.

Lopuksi suoritamme tämän bash-komentosarjan jättämällä argumentin pois ja välitämme vain kelvollisen lipun seuraavalla tavalla:

$ bash getopts.sh -r

Jälleen kerran bash-komentosarjamme oletustapaus on suoritettu, mikä on osoittanut virheilmoituksen, koska olemme ohittaneet pakollisen argumentin.

Päätelmä:

Nämä kaksi esimerkkiä ovat erittäin hieno kuvaus "getopts" -komennon käytöstä bash-komentosarjassa Linux Mint 20: ssä. Voit jopa luoda monimutkaisempia skenaarioita bashiin ja yhdistää ne “getopts” -komentoon, jotta käyttäjästä voidaan ottaa useampi kuin yksi argumentti ja liput tuloina.

Parhaat pelikonsoliemulaattorit Linuxille
Tässä artikkelissa luetellaan suositut pelikonsolin emulointiohjelmistot, jotka ovat saatavana Linuxille. Emulointi on ohjelmistojen yhteensopivuusker...
Best Linux Distros for Gaming in 2021
The Linux operating system has come a long way from its original, simple, server-based look. This OS has immensely improved in recent years and has no...
Kuinka siepata ja suoratoistaa pelisessiosi Linuxissa
Aikaisemmin pelaamista pidettiin vain harrastuksena, mutta ajan myötä pelialalla tapahtui valtava kasvu tekniikan ja pelaajien määrän suhteen. Peliala...