Bruke argumentvariabler:
Argumentvariabelen starter fra $ 0. Navnet på hovedskriptfilen er lagret i $ 0 som mottar argumentverdier fra kommandolinjeargumenter. Hvis to argumenter sendes på kommandolinjen, blir argumentverdiene mottatt i $ 1 og $ 2 variabler i rekkefølge.
Eksempel -1: Sender tre numeriske verdier som argumenter
Lag en bash -fil og legg til følgende kode. Skriptet vil motta tre argumentverdier og lagre i $ 1, $ 2 og $ 3. Det vil telle det totale antallet argumenter, skrive ut argumentverdier med sløyfe og uten løkke. Til slutt skriver du ut summen av alle argumentverdier.
#!/bin/bash
# Teller totalt antall argumenter
kastet ut 'Totalt antall argumenter: $#'
# Lese argumentverdier individuelt
kastet ut 'Første argumentverdi: $ 1'
kastet ut 'Andre argumentverdi: $ 2'
kastet ut 'Tredje argumentverdi: $ 3'
# Lese argumentverdier ved hjelp av loop
tilargvali '[e -postbeskyttet]'
gjøre
kastet ut -n '$ argval'
gjort
# Legge til argumentverdier
sum= $(($ 1+$ 2+$ 3))
# skrive ut resultatet
kastet ut -Og ' nResultat av sum =$ sum'
Kjør bash -filen med tre numeriske argumentverdier.
$bashcmdline1.shfemti 35 femten
Eksempel -2: Tar filnavn som argument
Lag en bash -fil og legg til følgende kode for å telle det totale antallet tegn i en fil. Her vil filnavn bli sendt som kommandolinjeargument.
#!/bin/bashfilnavn=$ 1
totalchar=``toalett -c $ filnavn``
kastet ut 'Totalt antall tegn er$ totalt'
Kjør bash -skriptet med filnavnet som enkel argumentverdi, og kjør en annen kommando for å kontrollere det totale antallet tegn i den filen. Her brukes medarbeider.txt -fil som argumentverdi. Totalt antall tegn i medarbeider.txt -filen er 204.
$bashcmdline2.sh ansatt.txt
$toalett -cansatt.txt
Bruke getopts -funksjonen:
Hvis du vil lagre data i en database eller en fil eller lage en rapport om et bestemt format basert på kommandolinjeargumentverdier getopts funksjon er det beste alternativet for å utføre oppgaven. Det er en innebygd linux-funksjon. Så du kan enkelt bruke denne funksjonen i skriptet til å lese formaterte data fra kommandolinjen.
Eksempel -1: Lese argumenter av getopts -funksjon
Lag en bash -fil og legg til følgende script for å forstå bruken av getopts funksjon. 'Getopts' -funksjonen brukes med mens loop for å lese kommandolinjeargumentalternativer og argumentverdier. Her brukes 4 alternativer som er 'Jeg', 'n', 'm' og 'Og' . case statement brukes til å matche det bestemte alternativet og lagre argumentverdien i en variabel. Til slutt skriver du ut verdiene til variabelen.
#!/bin/bashsamtidig som getopts ':i meg:'sint;gjøre
sak $ arg i
Jeg) ID=$ OPTARG;;
n) Navn=$ OPTARG;;
m) Produksjonsdato=$ OPTARG;;
Og) Utløpsdato=$ OPTARG;;
esac
gjort
kastet ut -Og ' n$ ID $ Navn $ Produksjonsdato $ Utløpsdato n'
Kjør filen med følgende alternativer og argumentverdier. Her er p100 verdien av -i alternativet, 'Hot Cake' er verdien av -n alternativet, '01 -01-2018 'er verdien av -m alternativet og '06 -01-2018' er verdien av - e alternativet.
$bashcmdline3.sh-Jegp001-n 'Varm kake' -m '01 -01-2018 ' -Og '06 -01-2018 '
Når du trenger å sende enkle verdier i et skript, er det bedre å bruke argumentvariabler. Men hvis du vil sende data på en formatert måte, er det bedre å bruke getopts -funksjonen for å hente argumentverdier. For mer informasjon se videoen !