Passere argumenter ved hjelp av standardvariabler:
Lag en ny fil med et hvilket som helst navn ved hjelp av berøringskommandoen, for eksempel file.sh.
$ta påfilnavn
Åpne denne nyopprettede filen og legg til noe bash -skript i den. Jeg har lagt til noen standardvariabler, f.eks. $ 1, $ 2 og $ 3 følgelig. Uansett hvilke argumenter som blir ført gjennom terminalen, vil de bli lagret i de angitte variablene.
Du må kjøre denne filen ved hjelp av ./ -kommandoen etterfulgt av noen argumenter. Som du kan se på bildet, oppstår det en feil når jeg passerte argumentene: Tillatelse nektet. Dette er fordi denne filen ikke har kjøringsrettigheter.
$./filnavn argument1 argument2 argumentSå for å gi utførelsesrettighetene til denne filen, bruk kommandoen sudo chmod for å gjøre det.
$sudo chmod+x filnavn
Kjør filen igjen med den samme kommandoen ovenfor. Denne gangen har jeg kommet med forskjellige argumenter. Du vil se at de nylig passerte argumentene er lagret i standardvariablene.
Passerer Shell -skriptnavn som argument:
Nå bruker du den samme gamle filen file.sh med en liten endring i standardvariablene. Du må legge til variabelen $ 0 i skriptet som vist.
Når du kjører den samme ./ shell -skriptkommandoen, blir navnet på skallskriptet, f.eks. ./filnavn vil bli lagret i $ 0 -variabelen som et argument.
Overføre argumenter som en matrise til variabel:
Fra og med den samme filfilen.sh, må du legge til noen ekstra linjer i det gamle skriptet. Deklarere en variabel som heter array. Legg til en standardvariabel [e -postbeskyttet] som lagrer argumentene som er angitt av brukeren som en matrise. Disse argumentene blir analysert til variabel matrise. Den siste linjen viser alle argumentene i variabelen som er sortert etter indeksnummeret.
Utfør ./ shell -skriptet. Du vil se at den vil vise argumentene eller verdiene som er lagret som en matrise i [e -postbeskyttet] analysert til variabel matrise, men ikke skallskriptnavnet i den andre ekko -setningen. Du vil ha følgende utgang.
$./filnavn argument1 argument2 argument
Bruk den samme filen med det samme skriptet. Bare fjern $ {array [3]} fra den siste linjen slik det er tydelig på bildet.
Etter at du har utført ./ -kommandoen, vil du se en lignende utgang som du fikk i eksemplet ovenfor uten endring.
Du kan også få det samme resultatet ved å erstatte den siste linjen i bash -skriptet med ett enkelt ord. Du trenger bare å legge til [e -postbeskyttet] i ekko -setningen, og den vil vise argumentene som er tilstede i denne variabelen.
Så hvis du kjører ./ -kommandoen igjen, får du de samme resultatene.
Sjekk totalt antall bestått argumenter:
Tvert imot, hvis du vil vite det totale antallet argumenter som er sendt av brukeren, kan du også gjøre det. For dette formålet må du bare erstatte [e -postbeskyttet] med $# i ekko.
Igjen utførelse av ./ -kommandoen, Du kommer nå til å se hele figuren med argumenter sendt til skriptet. I vårt tilfelle passeres 3 argumenter som verdi.
Lag linje for linje -utgang av argumenter:
Lag en ny fil test.sh i hjemmekatalogen. Legg til bash -skriptet som vist.
Kjør nå den samme gamle kommandoen med forskjellige argumenter. For det første vil du se feilen: Tillatelse nektet.
Du må utføre chmod -kommandoen for å gi denne filen sudo -privilegier. Etter det, kjør ./ shell script -kommandoen igjen. Og du får sortert linje for linje sortert utgang av argumenter.
Begrens variabelen via argumentindeksnummer:
Hvis du vil begrense variabelen ved hjelp av indeksnummeret, kan du gjøre det veldig enkelt. Legg til krøllete parenteser etter $ -tegnet og legg til argumentindeksnummeret du vil vise før andre argumenter.
Hvis argumentene fra brukerne er mindre enn indeksnummeret som er angitt i grensevariabelen, får du en tom argumentverdi. Som et eksempel har jeg gitt 4 argumenter, men jeg har gitt 05 -argumentverdien som skal vises. I denne situasjonen vil variabelen vises tom fordi det femte argumentet ikke er passert.
Men når du passerer like mange eller flere argumenter i kommandoen, får du verdien vist i resultatet som vist.
Kontroll av argumenter for spesifikke verdier:
Lag en ny fil med navnet Check.sh i hjemmekatalogen. Legg til det samme bash -skriptet som vist på bildet nedenfor. I dette skriptet har vi en variabel var for å lagre argumentverdien passert av brukeren. Deretter har vi en if -setning, som vil sjekke om argumentverdien samsvarer eller ikke. Hvis argumentverdien samsvarer med verdien som er angitt i parentes, vil den første ekkosetningen bli utført. Hvis verdien ikke samsvarer, vil den andre ekko -setningen bli utført.
Når vi kjører skallskriptkommandoen, vil det oppstå en feil. Ved å bruke chmod -kommandoen kan vi rette opp denne feilen.
Etter det, kjør skallskriptet for den aktuelle filen med en argumentverdi. I vårt tilfelle har vi gitt Aqsa som en argumentverdi, som er den samme som verdien som vises i parentesen. Så bash -skriptet vil utføre den første ekko -setningen som vist.
På den annen side, hvis du oppgir de forskjellige argumentverdiene i skallskriptet, vil den vise den andre ekko -setningen. Her har jeg lagt til Rimsha som en argumentverdi, som er forskjellig fra verdien som er gitt i if -setningen. Så bash script vil utføre den andre ekko -setningen.
Konklusjon:
Jeg håper denne guiden har hjulpet deg tilstrekkelig til å ha et godt grep om hvordan du sender argumenter til standardvariabler, sender argumentverdien som en matrise til en variabel, får det totale antallet argumenter bestått, linje for linje -utgang av argumenter, begrenser argumentet utdata ved hjelp av indeksnummer, kontroll av spesifikt verdi -argument og mange flere.