Linux “getopts” -eksempel

Linux “getopts” -eksempel
“Getopts” er en veldig nyttig kommando i Linux som for det meste er innlemmet i bash -skript for å ta flagg og argumenter som innganger fra brukeren. For ytterligere å utdype bruken av denne kommandoen i Linux Mint 20, vil vi dele med dere to forskjellige eksempler på bruken i denne artikkelen.

“Getopts” eksempler i Linux Mint 20:

For en enklere og en bedre forståelse av kommandoen "Getopts" i Linux Mint 20, har vi designet for dere to eksempel -scenarier. Før du drar videre til disse scenariene, kan du sjekke ut Hjelphåndboken for “GetOpts” -kommandoen i Linux Mint 20 Terminal, slik at du kan få den grunnleggende ideen om syntaks for denne kommandoen. Du kan se hjelpemanualen for denne kommandoen ved å utføre kommandoen "Hjelp":

$ getopts --hjelp

Hjelphåndboken for kommandoen “Getopts”, vil inneholde en kort beskrivelse av bruken av denne kommandoen sammen med syntaks som vist på bildet nedenfor:

Når vi nå har gått gjennom Hjelphåndboken for kommandoen "Getopts", kan vi fortsette med eksempelscenariene våre som følger:

Sak nr. 1: Passerende flagg til et bashskript for utførelsen i Linux Mint 20:

I dette eksemplet vil vi lage et bash -skript som vil ta et flagg som innspill fra brukeren sammen med utførelseskommandoen til det bash -skriptet. Avhengig av verdien av det medfølgende flagget, vises den respektive utgangen. Den detaljerte beskrivelsen av trinnene som er involvert i dette scenariet er som følger:

Trinn 1: Skrive et bash -skript:

Først skal vi skrive et bash -skript i vår hjemmekatalog. Vi har kalt denne filen som getopts.sh. Innholdet i dette bashskriptet vises på bildet nedenfor. I bash -skriptet som vises nedenfor, har vi en "while" -sløyfe som kjører på "getopts" -kommandoen. Her brukes denne "getopts" -kommandoen til å ta et flagg som inngang fra brukeren. Verdien av dette flagget kan enten være "r", "y" eller "g" som representerer henholdsvis "røde", "gule" og "grønne" farger. "Alternativet" -variabelen vil bli brukt til å lagre verdien av flagget som er gitt av brukeren. Da har vi brukt en "sak" -uttalelse om verdien av det medfølgende flagget som vil vise en tilpasset melding avhengig av verdien av "alternativet" flagget. Til slutt har vi stengt "Case" -blokken med "ESAC" -uttalelsen og "do" -blokken med "Done" -uttalelsen.

Trinn 2: Testing av bashskriptet:

Etter å ha laget og lagret bashskriptet vårt, er det på tide å kjøre det. Vi vil teste alle tilfellene en etter en. Først kjører vi bashskriptet med "-r" -flagget for å se om det produserer riktig utgang eller ikke på følgende måte:

$ bash getopts.sh -r

Den tilpassede utgangen fra vårt bashskript med “-R” -flagget vises på bildet nedenfor:

Nå kjører vi bashskriptet med "-y" -flagget for å se om det produserer riktig utgang eller ikke på følgende måte:

$ bash getopts.sh -y

Den tilpassede utgangen fra vårt bash-skript med "-y" -flagget vises på bildet nedenfor:

Nå kjører vi bashskriptet med "-g" -flagget for å se om det produserer riktig utgang eller ikke på følgende måte:

$ bash getopts.sh -g

Den tilpassede utgangen fra vårt bashskript med "-g" -flagget vises på bildet nedenfor:

Endelig kjører vi basisskriptet vårt med ethvert tilfeldig flagg, jeg.e. Et flagg som ikke er gyldig eller et flagg som ikke er nevnt i basisskriptet vårt, sier “-A” på følgende måte:

$ bash getopts.sh -a

Denne gangen er standardkassen til bashskriptet vårt blitt utført som har vist en feilmelding siden vi har brukt et ugyldig flagg.

Sak nr. 2: Passerende flagg sammen med argumenter til et bashskript for utførelsen i Linux Mint 20:

I dette eksemplet vil vi lage et bash -skript som vil ta et flagg og et argument som innspill fra brukeren sammen med utførelseskommandoen til det bash -skriptet. Avhengig av verdien av det medfølgende flagget og argumentet, vil den respektive produksjonen bli produsert. Den detaljerte beskrivelsen av trinnene som er involvert i dette scenariet er som følger:

Trinn 1: Skrive et bash -skript:

Bash -skriptet som brukes til denne saken vises på bildet nedenfor og ligner veldig på det vi opprettet for saken vår nr. 1. Den eneste forskjellen er at vi denne gangen ikke tillater flere flagg. Brukeren har bare lov til å legge inn “-r” -flagget. Imidlertid indikerer ":" kolon etter "R" -flagget i bashskriptet at brukeren også er ment å gi et argument sammen med flagget. Dette argumentet vil bli lagret i standard "OptArg" -variabel. For å vise verdien av det oppgitte argumentet med “Echo” -kommandoen, har vi brukt et "$" -symbol før "Optarg" -variabelen.

Trinn 2: Testing av bashskriptet:

Etter å ha lagret dette bashskriptet, er det nå på tide å teste det. Igjen, vi vil teste alle tilfellene en etter en. Først kjører vi bashskriptet med "-R" -flagget og et eksempel på argumentet "svart" for å se om det produserer riktig utgang eller ikke på følgende måte:

$ bash getopts.sh -r svart

Den tilpassede utgangen fra vårt bashskript med "-R" -flagget og "svart" -argumentet vises på bildet nedenfor:

Nå vil vi teste dette skriptet med et ugyldig flagg og et gyldig argument på følgende måte:

$ bash getopts.sh -a svart

Denne gangen er standardkassen til bashskriptet vårt blitt utført som har vist en feilmelding siden vi har brukt et ugyldig flagg.

Nå vil vi kjøre dette bashskriptet mens vi utelater flagget og bare gir et gyldig argument på følgende måte:

$ bash getopts.sh svart

Denne gangen vil det ikke bli produsert noen utgang på terminalen eller med andre ord, vårt bashskript vil ikke utføre siden vi har hoppet over et obligatorisk flagg.

Til slutt vil vi kjøre dette bashskriptet mens vi utelater argumentet og bare passerer det gyldige flagget på følgende måte:

$ bash getopts.sh -r

Igjen denne gangen er standardkassen til bashskriptet vårt blitt utført som har vist en feilmelding siden vi har hoppet over det obligatoriske argumentet.

Konklusjon:

Disse to eksemplene er en veldig fin skildring av bruken av "getopts" -kommandoen i et bash -skript i Linux Mint 20. Du kan til og med lage mer komplekse scenarier i bash og koble dem sammen med “getopts” -kommandoen for å ta mer enn ett argument og flagg fra brukeren som innganger.