Kako ravnati z argumenti ukazne vrstice v bash skriptu

How Handle Command Line Arguments Bash Script



V mnogih primerih skripti bash zahtevajo vrednosti argumentov, ki skriptu ponujajo možnosti vnosa. Argumente ukazne vrstice lahko v bash skriptu obravnavate na dva načina. Eden je z uporabo spremenljivke argumenta drugo pa z uporabo getopts funkcijo. Kako lahko ravnate z argumenti ukazne vrstice, je prikazano v tej vadnici.

Uporaba spremenljivk argumenta:

Argumentna spremenljivka se začne od 0 USD. Ime glavne datoteke skripta je shranjeno v $ 0, ki iz argumentov ukazne vrstice sprejema vrednosti argumentov. Če v ukazno vrstico posredujete dva argumenta, bodo vrednosti argumentov zaporedno prejete v spremenljivkah $ 1 in $ 2.







Primer -1: Pošiljanje treh številskih vrednosti kot argumentov

Ustvarite bash datoteko in dodajte naslednjo kodo. Skript bo prejel tri vrednosti argumentov in jih shranil v $ 1, $ 2 in $ 3. Štelo bo skupno število argumentov, natisnilo vrednosti argumentov z zanko in brez zanke. Nazadnje natisnite vsoto vseh vrednosti argumentov.



#!/bin/bash

# Štetje skupnega števila argumentov
vrgel ven 'Skupno število argumentov: $#'

# Branje vrednosti argumentov posamično
vrgel ven 'Vrednost prvega argumenta: 1 USD'
vrgel ven 'Vrednost drugega argumenta: 2 USD'
vrgel ven 'Vrednost tretjega argumenta: 3 USD'

# Branje vrednosti argumentov z uporabo zanke
zaargvalv '[zaščiteno po e -pošti]'
naredi
vrgel ven -n '$ argval'
Končano

# Dodajanje vrednosti argumenta
vsota= $((1 USD+2 USD+3 USD))

# natisni rezultat
vrgel ven -In ' nRezultat vsote =$ vsota'

Zaženite datoteko bash s tremi številskimi vrednostmi argumentov.



$bashcmdline1.shpetdeset 35 petnajst





Primer -2: Ime datoteke kot argument

Ustvarite bash datoteko in dodajte naslednjo kodo za štetje skupnega števila znakov katere koli datoteke. Tukaj bo ime datoteke posredovano kot argument ukazne vrstice.

#!/bin/bash
Ime datoteke=1 USD
totalchar=''stranišče -c $ ime datoteke''
vrgel ven 'Skupno število znakov je$ totalchar'

Zaženite bash skript z imenom datoteke kot vrednost enega argumenta in zaženite drug ukaz, da preverite skupno število znakov te datoteke. Tu se datoteka vrednost.txt uporablja kot vrednost argumenta. Skupno število znakov datoteke zaposlenih.txt je 204.



$bashcmdline2.sh zaposleni.txt
$stranišče -czaposleni.txt

Uporaba funkcije getopts:

Če želite podatke shraniti v bazo podatkov ali katero koli datoteko ali ustvariti poročilo o določeni obliki na podlagi vrednosti argumentov ukazne vrstice, potem getopts funkcija je najboljša možnost za izvedbo naloge. To je vgrajena funkcija linux. Tako lahko to funkcijo v skriptu preprosto uporabite za branje oblikovanih podatkov iz ukazne vrstice.

Primer -1: branje argumentov s pomočjo funkcije getopts

Ustvarite bash datoteko in dodajte naslednji skript, da razumete uporabo getopts funkcijo. Funkcija 'getopts' se uporablja z zanko while za branje možnosti argumentov ukazne vrstice in vrednosti argumentov. Tu se uporabljajo 4 možnosti, ki so 'I', 'n', 'm' in 'In' . stavek case se uporablja za ujemanje določene možnosti in shranjevanje vrednosti argumenta v spremenljivko. Na koncu natisnite vrednosti spremenljivke.

#!/bin/bash
medtem getopts ':v meni:'jezen;naredi
Ovitek $ arg v
jaz) ID=$ OPTARG;;
n) Ime=$ OPTARG;;
m) Datum izdelave=$ OPTARG;;
In) Rok uporabnosti=$ OPTARG;;
esac
Končano
vrgel ven -In ' n$ ID $ Name $ Manufacturing_date $ Expire_date n'

Zaženite datoteko z naslednjimi možnostmi in vrednostmi argumentov. Tu je p100 vrednost možnosti -i, 'Hot Cake' je vrednost možnosti -n, '01 -01-2018 'je vrednost -m možnosti in '06 -01-2018' je vrednost - e možnost.

$bashcmdline3.sh-jazp001-n 'Vroča torta' -m '01 -01-2018 ' -In '06 -01-2018 '

Ko morate v skriptu poslati preproste vrednosti, je bolje uporabiti spremenljivke argumentov. Če pa želite podatke pošiljati na formatiran način, je bolje, da za pridobivanje vrednosti argumentov uporabite funkcijo getopts. Za več informacij si oglejte video !