Få argumenter med flagg i bash
For å få argumenter med flagg i bash, kan du bruke kommandoen "getopts". Kommandoen "Getopts" er en innebygd funksjon i bash som kan brukes til å analysere kommandolinjealternativer og argumenter. Det tar Tre argumenter: alternativstrengen, variabelen for å lagre det nåværende alternativet, og navnet på variabelen for å lagre de gjenværende argumentene. Her er et eksempel:
#!/bin/bash
mens getopts ": x: y:" opt; gjøre
sak $ melde deg inn
x)
arg1 = "$ optarg"
;;
y)
Arg2 = "$ Optarg"
;;
\?)
ekko "Ugyldig: -$ Optarg"> & 2
;;
: :)
Echo "Alternativ -$ OptArg krever et argument."> & 2
;;
Esac
Ferdig
Shift $ ((Optind-1))
ekko "Argument 1: $ Arg1"
ekko "Argument 2: $ Arg2"
Her brukes kommandoen "getopts" til å analysere kommandolinjealternativene "-x" og "-y". ":" -Karakteren etter hvert alternativ indikerer at alternativet krever et argument og den variable "opt" lagrer det nåværende alternativet, og variablene "Arg1" og "Arg2" lagrer de tilsvarende argumentene.
"Case" -uttalelsen brukes til å håndtere hvert alternativ, så hvis alternativet er "x", lagres argumentet i "Arg1". Hvis alternativet er "y", lagres argumentet i "Arg2".En feilmelding vises når et ugyldig alternativ er gitt, samt når det ikke er gitt noe argument selv om et alternativ krever en.
OptArg brukes til å lagre verdien av argumentet som sendes med alternativene -x eller -y, mens Optind -1 brukes til å forskyve posisjonsparametrene for å ekskludere alternativene og deres argumenter, og bare etterlater argumentene som ikke er alternativ.
Etter å ha analysert alternativene, brukes “Shift” -kommandoen for å fjerne alternativene fra argumentlisten. Dette sikrer at de gjenværende argumentene er lagret i riktig variabel.For å bruke skriptet med flagg, kan du kjøre skriptet med flaggalternativene og argumentene, som dette:
./- -
Konklusjon
Å bruke flagg for å passere valgfrie argumenter for å basere skript kan gjøre skript mer fleksible og kraftige, og med “getopts” -kommandoen kan du enkelt analysere argumenter og kommandolinjealternativer. Ved å følge eksemplet i denne artikkelen, kan du implementere flagg i dine egne bashskript og håndtere dem med letthet.