Kako se nositi s argumentima naredbenog retka u Bash skripti

How Handle Command Line Arguments Bash Script



U mnogim slučajevima bash skripte zahtijevaju vrijednosti argumenata za pružanje mogućnosti unosa skripti. Argumentima naredbenog retka možete upravljati u bash skripti na dva načina. Jedan je korištenjem varijable argumenta a drugi je pomoću getopti funkcija. Kako možete postupati s argumentima naredbenog retka prikazano je u ovom vodiču.

Korištenje varijabli argumenta:

Argument varijabla počinje od 0 USD. Ime glavne datoteke skripte pohranjeno je u $ 0 koje prima vrijednosti argumenata iz argumenata naredbenog retka. Ako se u naredbeni redak proslijede dva argumenta, vrijednosti argumenata će se primati u varijablama $ 1 i $ 2 uzastopno.







Primjer -1: Slanje tri numeričke vrijednosti kao argumenata

Napravite bash datoteku i dodajte sljedeći kod. Skripta će primiti tri vrijednosti argumenta i pohraniti je u $ 1, $ 2 i $ 3. Brojat će ukupan broj argumenata, ispisivati ​​vrijednosti argumenata s petljom i bez petlje. Na kraju ispišite zbroj svih vrijednosti argumenata.



#!/bin/bash

# Brojanje ukupnog broja argumenata
izbaciti 'Ukupan broj argumenata: $#'

# Pojedinačno čitanje vrijednosti argumenata
izbaciti 'Vrijednost prvog argumenta: $ 1'
izbaciti 'Vrijednost drugog argumenta: 2 USD'
izbaciti 'Vrijednost trećeg argumenta: 3 USD'

# Čitanje vrijednosti argumenata pomoću petlje
zaargvalu '[zaštićena e -pošta]'
čini
izbaciti -n '$ argval'
učinjeno

# Dodavanje vrijednosti argumenata
iznos= $((1 USD+2 USD+3 USD))

# ispišite rezultat
izbaciti -I ' nRezultat zbroja =$ zbroj'

Pokrenite bash datoteku s tri numeričke vrijednosti argumenta.



$bashcmdline1.shpedeset 35 petnaest





Primjer -2: Uzimanje naziva datoteke kao argumenta

Napravite bash datoteku i dodajte sljedeći kôd za brojanje ukupnog broja znakova bilo koje datoteke. Ovdje će se naziv datoteke proslijediti kao argument naredbenog retka.

#!/bin/bash
naziv datoteke=1 USD
totalchar=``zahod -c $ naziv datoteke``
izbaciti 'Ukupan broj znakova je$ totalchar'

Pokrenite bash skriptu s imenom datoteke kao vrijednost jednog argumenta i izvedite drugu naredbu za provjeru ukupnog broja znakova te datoteke. Ovdje se datoteka zaposlenika.txt koristi kao vrijednost argumenta. Ukupan broj znakova datoteke zaposlenih.txt je 204.



$bashcmdline2.sh zaposlenik.txt
$zahod -czaposlenik.txt

Korištenje funkcije getopts:

Ako želite pohraniti podatke u bazu podataka ili bilo koju datoteku ili izraditi izvješće o određenom formatu na temelju vrijednosti argumenata naredbenog retka, tada getopti funkcija je najbolja opcija za obavljanje zadatka. To je ugrađena linux funkcija. Dakle, ovu funkciju možete lako koristiti u skripti za čitanje formatiranih podataka iz naredbenog retka.

Primjer -1: Čitanje argumenata pomoću funkcije getopts

Napravite bash datoteku i dodajte sljedeću skriptu da biste razumjeli upotrebu getopti funkcija. Funkcija 'getopts' koristi se s while petljom za čitanje opcija argumenata naredbenog retka i vrijednosti argumenata. Ovdje se koriste 4 opcije koje su 'u M' i 'I' . Naredba case koristi se za podudaranje s određenom opcijom i spremanje vrijednosti argumenta u varijablu. Na kraju ispišite vrijednosti varijable.

#!/bin/bash
dok getopti ':u meni:'ljut;čini
slučaj $ arg u
i) iskaznica=$ OPTARG;;
n) Ime=$ OPTARG;;
m) Datum proizvodnje=$ OPTARG;;
I) Rok trajanja=$ OPTARG;;
esac
učinjeno
izbaciti -I ' n$ ID $ Name $ Manufacturing_date $ Expire_date n'

Pokrenite datoteku sa sljedećim opcijama i vrijednostima argumenata. Ovdje je p100 vrijednost -i opcije, 'Hot Cake' je vrijednost -n opcije, '01 -01-2018 'je vrijednost -m opcije i '06 -01-2018' je vrijednost - e opciju.

$bashcmdline3.sh-ip001-n 'Vrući kolač' -m '01 -01-2018 ' -I '06 -01-2018 '

Kad trebate poslati jednostavne vrijednosti u skripti, bolje je koristiti varijable argumenata. No, ako želite slati podatke na formatiran način, bolje je upotrijebiti funkciju getopts za dohvaćanje vrijednosti argumenata. Za više informacija pogledajte video !