Hvordan sender jeg argument i et Bash -script?

How Do I Pass Argument Bash Script



De fleste af Linux Mint 20 -brugerne sidder fast, når de sender et argument i et bash -script. Du kan videregive argumenterne til ethvert bash -script, når det udføres. Der er flere enkle og nyttige måder at sende argumenter i et bash -script. I denne artikelguide vil vi fortælle dig om nogle meget nemme måder at videregive og bruge argumenter i dine bash -scripts.

Videregivelse af argumenter ved hjælp af standardvariabler:

Opret en ny fil med et hvilket som helst navn ved hjælp af berøringskommandoen, f.eks. File.sh.







$røre vedfilnavn



Åbn denne nyoprettede fil, og tilføj noget bash -script til den. Jeg har tilføjet nogle standardvariabler, f.eks. $ 1, $ 2 og $ 3 følgelig. Uanset hvilke argumenter der vil blive ført gennem terminalen, gemmes de i de angivne variabler.







Du skal køre denne fil ved hjælp af ./ -kommandoen efterfulgt af nogle argumenter. Som du kan se på billedet, at da jeg passerede argumenterne, opstår der en fejl: Tilladelse nægtet. Dette skyldes, at denne fil ikke har eksekveringsrettigheder.

$./filnavn argument1 argument2 argument

Så for at give eksekveringsrettighederne til denne fil, skal du bruge kommandoen sudo chmod til at gøre det.



$sudo chmod+x filnavn

Kør nu filen igen ved hjælp af den samme kommando ovenfor. Denne gang har jeg fremført forskellige argumenter. Du vil se, at de nyligt beståede argumenter er gemt i standardvariablerne.

Videregivelse af Shell Script -navn som argument:

Brug nu den samme gamle fil file.sh med en lille ændring i standardvariablerne. Du skal tilføje variablen $ 0 i scriptet som vist.

Ved at køre den samme ./ shell script -kommando, navnet på dit shell script, f.eks. ./filnavn vil blive gemt i variablen $ 0 som et argument.

Videregivelse af argumenter som et array til variabel:

Fra og med den samme fil file.sh skal du tilføje nogle ekstra linjer i det gamle script. Deklarere en variabel med navnet array. Tilføj en standardvariabel [e -mailbeskyttet], som gemmer de argumenter, som brugeren har indtastet som en matrix. Disse argumenter analyseres til variabel array. Den sidste linje viser alle argumenterne for variabel array sorteret efter indeksnummer.

Udfør ./ shell -scriptet. Du vil se, at det vil vise de argumenter eller værdier, der er gemt som en matrix i [email protected], analyseret til variabel array, men ikke shell -scriptnavnet i den anden ekko -sætning. Du får følgende output.

$./filnavn argument1 argument2 argument

Brug den samme fil med det samme script. Fjern bare $ {array [3]} fra den sidste linje, så det er tydeligt på billedet.

Efter udførelsen af ​​./ -kommandoen vil du se en lignende output, som du fik i eksemplet ovenfor uden ændringer.

Du kan også få det samme resultat ved at erstatte den sidste linje i bash -scriptet med et enkelt ord. Du skal bare tilføje [e -mail beskyttet] i ekko -sætningen, og det vil vise de argumenter, der er til stede i dette variabel array.

Så hvis du kører ./ -kommandoen igen, får du de samme resultater.

Kontroller det samlede antal beståede argumenter:

Tværtimod, hvis du vil vide det samlede antal argumenter, som brugeren har bestået, kan du også gøre det. Til dette formål skal du bare erstatte [email protected] med $# i ekko.

Igen udfører kommandoen ./, nu vil du se hele antallet af argumenter, der er sendt til scriptet. I vores tilfælde overføres 3 argumenter som værdi.

Opret linje for linje -output af argumenter:

Opret en ny fil test.sh i hjemmemappen. Tilføj bash -scriptet som vist.

Kør nu den samme gamle kommando med forskellige argumenter. For det første vil du se fejlen: Tilladelse nægtet.

Du skal udføre kommandoen chmod for at give denne fil sudo -rettigheder. Efter det skal du køre kommandoen ./ shell script igen. Og du får den linje for linje sorterede output af argumenter.

Begræns variablen via argumentindeksnummer:

Hvis du vil begrænse variablen ved hjælp af dets indeksnummer, kan du gøre det meget let. Tilføj krøllede parenteser efter $ -tegnet, og tilføj det argumentindeksnummer, som du vil vise før andre argumenter.

Hvis argumenterne fra brugerne er mindre end indeksnummeret i grænsevariablen, får du en tom argumentværdi. Som et eksempel har jeg givet 4 argumenter, men jeg har givet 05 -argumentværdien, der skal vises. I denne situation vises variablen tom, fordi det femte argument ikke er blevet bestået.

Men når du sender det samme eller flere antal argumenter i kommandoen, får du værdien vist i resultatet som vist.

Kontrol af specifikke værdiargumenter:

Opret en ny fil med navnet Check.sh i din hjemmekatalog. Tilføj det samme bash -script som vist på billedet herunder. I dette script har vi en variabel var til at gemme den argumentværdi, som brugeren har bestået. Så har vi en if -sætning, som kontrollerer, om argumentværdien matches eller ej. Hvis argumentværdien matches med den værdi, der er angivet i parentesen, vil den første ekko -sætning blive udført. Hvis værdien ikke stemmer overens, udføres den anden ekko -sætning.

Når vi kører shell -script -kommandoen, vil der opstå en fejl. Ved at bruge chmod -kommandoen kan vi rette denne fejl.

Derefter udføres shell -scriptet for den bestemte fil med en vis argumentværdi. I vores tilfælde har vi angivet Aqsa som en argumentværdi, som er den samme som værdien, der vises i parentes. Så bash scriptet vil udføre det første ekko udsagn som vist.

På den anden side, hvis du angiver de forskellige argumentværdier i shell -scriptet, viser den den anden ekko -sætning. Her har jeg tilføjet Rimsha som en argumentværdi, som er forskellig fra værdien i if -sætningen. Så bash script vil udføre det andet ekko udsagn.

Konklusion:

Jeg håber, at denne vejledning har hjulpet dig tilstrækkeligt med at have et stærkt greb om, hvordan du sender argumenter til standardvariabler, sender argumentværdi som en matrix til en variabel, får det samlede antal argumenter bestået, linje for linje -output af argumenter, begrænser argumentet output ved hjælp af indeksnummer, kontrol af specifik værdi -argument og mange flere.