Parsing og overførsel af argumenter til bash-scripts/ shell-scripts ligner meget den måde, hvorpå vi sender argumenter til funktionerne inde i Bash-scripts. Vi vil se den faktiske proces med at videregive argumenterne til et script og også se på måden at få adgang til disse argumenter inde i scriptet.
Bestå argumenter før kørsel
Vi kan sende parametre lige efter navnet på scriptet, mens vi kører kommandoen bash-fortolker. Du kan sende parametre eller argumenter til filen. Bare kommandoen til at køre scriptet normalt ved at tilføje værdien af parametrene direkte til scriptet. Hver parameter er en mellemrumssepareret værdi, der skal overføres til shell-scriptet.
bash scriptname.sh>
Ovenstående kommando vil bare køre scriptet uden at sende parametrene.
Hvorimod kommandoen nedenfor vil sende argumenterne til scriptet.
jsp
bash scriptname.sh parameter1 parameter2 parameter3 nth-parameter>

Kører bash-script med beståede parametre
Ovenstående skærmbillede viser de parametre, der er sendt til scriptet, hvordan vi gør det, som vi vil forklare i næste afsnit. Men lige nu kan vi se, at vi har passeret parametrene uden for scriptet ved hjælp af bash-miljøvariabler. Du kan endda bruge strenge og andre datatyper, men pas på ethvert mellemrum. White space vil gøre variablen til en separat parameter. Så især for strenge skal du være omhyggelig med at omgive dem strengt med anførselstegn.
Registrering af kommandolinjeargumenter
Nu vil vi se, hvordan vi får adgang til disse parametre inde i scriptet. Vi bruger antallet af parametre, der er sendt i rækkefølgen, dvs. for de første parametre, der er bestået, vil vi parse (adgang) parameteren ved at bruge som variabel. Den første parameter er gemt i -variablen. Desuden kan du tildele denne variabel til enhver anden brugerdefineret variabel, du kan lide. For den n'te parameter, der er bestået, kan du bruge $n til at få adgang til den pågældende parameter. Her starter variabelnavnet med 1, fordi filnavnet/scriptnavnet er den 0. parameter. Hvis du har mere end 9 parametre, skal du sørge for at bruge { } omkring tallet, da uden parentes, vil bash kun se som og udelukke 0, så brug og så videre i stedet for blot .
#!/bin/bash echo '1st parameter = ' echo '2nd Parameter = '>
Ovenstående script kan få adgang til parametrene fra kommandolinjen/shell ved hjælp af positionsparametrene, som er 1, 2, 3 og så videre.

Adgang til argumenterne fra scriptet.
Som du kan se, har vi brugt {} til at få adgang til parametervariabelnumrene fra 10 og fremefter. Scriptet kan bruges til loops og while loops til at iterere over parametrene, men vi vil diskutere det i yderligere afsnit.
Tildel forudsatte argumenter til bash variabel
Vi kan også tildele det til andre brugerdefinerede variabler for at gøre scriptet mere dynamisk og forme det efter behovene. Selvom ovenstående script, når det køres, kun udskriver to parametre, kan du helt sikkert få adgang til flere parametre ved at bruge variablen som rækkefølgen af parametre i tal. Scriptet kan få adgang til positionsvariablerne fra kommandolinjen og bruge dem på de nødvendige steder, hvor det er nødvendigt i scriptet.
#!/bin/bash a= b= p=$(($a*$b)) echo 'The product of $a and $b = $p'>

Tildel forudsatte argumenter til bash variabel
Ovenstående script får adgang til positionsparametrene, dvs. og , der er overført til scriptet og gemmer de brugerdefinerede variabler for at få adgang til dem senere og ændre dem i overensstemmelse hermed. Vi kan også få adgang til flere parametre ved hjælp af iterative metoder, som vi vil se i de kommende afsnit.
Vi har også muligheden for at kontrollere for eventuelle NULL eller tomme parametre, der sendes ved hjælp af -z eller -n flagene. Ud fra dette kan vi verificere, om parametrene blev bestået eller ej.
#!/bin/bash if [[ -z ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>

Kontrollerer for positionsparametre, der er sendt ind eller ej.
Med dette script kan vi registrere, om nogen positionelle parametre blev sendt ind, eller intet blev sendt. -z-flaget kontrollerer for eventuelle NULL- eller ikke-initialiserede variabler i BASH. -z-flaget returnerer sandt, hvis den beståede variabel er NULL eller ikke-initialiseret. Derfor kan vi gøre brug af grundlæggende If-else-sætninger til at opdage de parametre, der er bestået.
java print
Vi kan også bruge -n flag, som returnerer sand, hvis ingen parametre sendes, så vi skal gøre brug af ! at vende tilstanden.
Sådan som følger:
java streng til int konvertering
#!/bin/bash if [[ ! -n ]]; then echo 'No parameter passed.' else echo 'Parameter passed = ' fi>
Dette script vil også give det samme output, men vi bruger -n flag i stedet for -z.
Læsning af flere argumenter med For- eller While-løkke
Vi kan bruge @ variabel til at få adgang til hver parameter, der sendes til scriptet via kommandolinjen. Det er en speciel variabel, der rummer rækken af variabler i BASH. I dette tilfælde bruger vi det alene, så det indeholder rækken af positionelle parametre, der sendes ind. Vi kan bruge det til at iterere over de parametre, der sendes ved hjælp af loops eller while-løkke.
#!/bin/bash for i in $@ do echo -e '$i ' done>

Brug af loops og @ variabel for at få adgang til parametrene som array-elementer.
Vi brugte en interval-baseret for-løkke til at iterere over, indtil der er elementer i @-arrayet. Vi itererer simpelthen over arrayet og udskriver elementet. Vi kan simpelthen tildele det, ændre værdierne og foretage de nødvendige ændringer af parametrene og argumenterne for at opnå det ønskede resultat fra scriptet.
ELLER
Vi kan også udskrive argumenterne ved at bruge while-løkken og miljøvariablerne i BASH.
#!/bin/bash i=$(($#-1)) while [ $i -ge 0 ]; do echo ${BASH_ARGV[$i]} i=$((i-1)) done> 
Brug af while-løkke til at iterere over de beståede parametre.
Vi bruger variablen ' # ', da den rummer antallet af parametre, der er sendt ind. Vi initialiserer antallet af parametre og fjerner en, da vi skal bruge et array til at iterere over det. Så som sædvanlig starter arrayets indeks fra 0. Da dette array initialiseres fra det sidste element eller den sidste parameter, der er passeret, skal vi dekrementere tælleren indtil 0 for at udskrive hver parameter i den rækkefølge, den passeres. Vi bruger simpelthen BASH_ARGV-arrayet til at få adgang til parametrene og udskrive dets værdi. Ved hver iteration reducerer vi også værdien af i- iteratoren eller tælleren med én ved at bruge de aritmetiske dobbeltparenteser. Fra dette udskriver vi simpelthen hver parameter, der sendes til scriptet, ved hjælp af en while-løkke som vist fra output-skærmbilledet.
Læsning med parameternavne
Brug af getopts til at parse argumenter og parametre
Vi kan bruge getopts-programmet/kommandoen til at parse de argumenter, der sendes til scriptet i kommandolinjen/terminalen ved at bruge loops og switch-case-sætninger.
#!/bin/bash while getopts n:c: option do case '${option}' in n)nation=${OPTARG};; c)code=${OPTARG};; esac done echo 'Nation : $nation' echo 'code : $code'> 
Brug af getopts til at parse argumenter og parametre
Ved hjælp af getopts kan vi tildele de positionelle argumenter/parametre fra kommandolinjen til bash-variablerne direkte. Dette giver os mulighed for at styre parametrene pænt og på en systematisk måde. I ovenstående script har vi brugt to argumenter til at gemme bash-variablerne ved hjælp af getopts-syntaksen, mens loops og switch-case-sætninger.
Udskrivning af værdier af alle argumenter
Vi kan udskrive de argumenter, der er sendt til scriptet med en simpel kraftfuld variabel '@', som gemmer alle de parametre, der er sendt.
#!/bin/bash echo 'The arguments passed in are : $@'>

Udskrivning af værdier af alle argumenter
matrix i c-sprog
Adgang til antallet af beståede parametre
Vi kan også bruge variablen '#' til at få adgang til antallet af parametre, der sendes fra kommandolinjen. Variablen # indeholder grundlæggende antallet af parametre/argumenter, som sendes ind i scriptet.
#!/bin/bash echo 'The number of arguments passed in are : $#'>

Adgang til antallet af beståede parametre
Følgende var processen og specifikationen for at overføre og parse variablerne i bash-scriptet. Logikken i at skifte og foretage ændringer af variablerne ligger i brugerens hænder. Dette var blot en demonstration af at gå ind og analysere argumenterne fra kommandolinjen til scriptet for at gøre dem mere dynamiske.