Kako rukovati argumentima naredbenog retka u Bashu?

Kako Rukovati Argumentima Naredbenog Retka U Bashu



U Linuxu koristimo argumente naredbenog retka kao unos za bash skriptu. Bash može uzeti ove argumente naredbenog retka sekvencijalno i analizirati ih kao opciju. Ovi argumenti vam omogućuju da dinamički utječete na akcije i izlaz skripte.

Ove argumente možete drugačije konfigurirati kako biste utjecali na ulaz i izlaz. Zato je rukovanje argumentima naredbenog retka u bashu bitno, ali mnogi novi korisnici moraju naučiti kako se to radi. Stoga ćemo u ovom vodiču objasniti različite načine rukovanja argumentima naredbenog retka u bashu.







Kako rukovati argumentima naredbenog retka u Bashu?

Postoje različiti načini za rukovanje argumentima naredbenog retka u Bashu pa ih pogledajmo kako bismo dobili kratke informacije:



Funkcija getopt



Funkcija getopt je zgodna jer pruža opcije i sintaksu za definiranje i raščlanjivanje argumenata u bashu. To je ugrađena funkcija Linuxa koju možete koristiti dok stvarate datoteku baze podataka ili izvješće u određenom formatu na temelju argumenata. Funkcija getopt pomaže analizirati kratke argumente naredbenog retka jer postoje dvije vrste argumenata:





  • Kratki argumenti: Ovo su argumenti od jednog znaka iza kojih slijedi crtica. Na primjer, -a, -l, -h, itd., nekoliko je primjera pojedinačnih argumenata.

  • Dugi argumenti: Ovo su argumenti od više znakova nakon kojih slijedi dvostruka crtica. Postoje različiti primjeri dugih argumenata, kao što su –all, –list, –help, itd.

Uzmimo primjer gdje ćemo rukovati argumentima naredbenog retka pomoću uslužnog programa getopt. Napravili smo bash skriptu pod nazivom 'getopt.sh' koja sadrži sljedeće informacije:



!/ kanta za smeće / udarac

dok getopts 'A:B:C:D:' detalji; čini

slučaj ' $detalji ' u

A )

jeka „Ime građanina je $OPTARG ' ;;

B )

jeka „Građanska iskaznica je $OPTARG ' ;;

C )

jeka „Mjesto rođenja je $OPTARG ' ;;

D )

jeka „Okupacija je $OPTARG ' ;;

* )

Izlaz 1 ;;

esac

učinjeno

pomaknuti ' $(($OPTING -1) )'



ako [ ! -S $1 ] ; zatim

jeka 'Bračni status $1'

drugo

jeka 'Nema unosa'

Izlaz 1

biti



ako [ ! -S 2 dolara ] ; zatim

jeka 'Članovi obitelji $2'

biti

Sada izvršimo skriptu sa potrebnim argumentima u ulazu:

Kao što možete vidjeti na gornjoj slici, pokrećemo skriptu samo s funkcijama getopt, a zatim dodajemo normalne argumente kako bismo dobili potpuni rezultat.

Korištenje zastava

Zastavice su samo pojedinačni znakovi ispred kojih stoje crtice (-). Kada prosljeđujemo argumente pomoću funkcije getopt, koristimo zastavice. -a, -b, -c neki su primjeri zastavica. Na primjer,  skripta zahtijeva ime građanina, osobnu iskaznicu, mjesto, dob i zanimanje. Stoga smo zastavicama j, k, l, m, n istovremeno definirali ime, osobnu iskaznicu, mjesto, dob i zanimanje građanina:

#!/bin/bash

Dok getopts j:k:l:m:n: informacija_zastavice

čini

slučaj ' ${flag_info} ' u
< ol >
< da > j ) državljansko ime = ${OPTARG} ;; da >
< da > k ) građanin = ${OPTARG} ;; da >
< da > l ) mjesto = ${OPTARG} ;; da >
< da > m ) dob = ${OPTARG} ;; da >
< da > n ) okupacija = ${OPTARG} ;; da >
ol >
esac

učinjeno

jeka 'Ovdje su uneseni podaci:'

jeka 'Ime građanina: $citizenname ' ;

jeka 'Građanska iskaznica: $citizenid ' ;

jeka 'Mjesto: $mjesto ' ;

jeka 'Dob: $dob ' ;

jeka 'Okupacija: $zanimanje ' ;

Skripta će dati sljedeći rezultat u terminalu:

. /< skripta > .sh -j Danny -k 476 -l Toronto -m 25 -n Autor

Korištenje [email protected] S petljama

' [email protected] ” varijabla nije ništa drugo nego niz svih ulaznih argumenata. Možemo proslijediti bilo koji broj ulaza koristeći ' [email protected] ” varijabla. Ovu varijablu možete koristiti kao petlju za ponavljanje kroz argumente. ' [email protected] ” varijabla onda dobro dođe; ne znate veličinu unosa i ne možete prihvatiti položajne argumente. Stoga možete koristiti ' [email protected] ”  umjesto da uvijek iznova definirate funkciju getopt. Evo primjera korištenja petlji i [email protected] zajedno u skripti:

#!/bin/bash

na jedan = ( “$ @ )



ako [ $# -gt 1 ]

zatim



dodati =$ ( ( ${num[0]} + ${num[1]} ) )

jeka 'Zbrajanje svih brojeva je: $dodaj '



oduzimanje =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

jeka 'Oduzimanje brojeva je: $oduzimanje '



pomnožiti =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

jeka 'Množenje brojeva je: $umnožiti '



division1 =$ ( ( ${num[0]} / ${num[1]} ) )

jeka 'Podjela na ${num[0]} i ${num[1]} je: $division1 '



podjela2 =$ ( ( ${num[1]} / ${num[2]} ) )

jeka 'Podjela od ${num[1]} i ${num[2]} je: $podjela2 '



podjela3 =$ ( ( ${num[0]} / ${num[2]} ) )

jeka 'Podjela od ${num[0]} i ${num[2]} je: $podjela2 '



biti

Gornja skripta izvodi različite aritmetičke izračune na temelju argumenata naredbenog retka. Na primjer, unijeli smo 50, 35 i 15 kao unos:

Korištenje pozicijskih parametara

Možete pristupiti pozicijskim parametrima jer prvo pristupaju $1, zatim $2, i tako dalje. Na primjer, stvorimo skriptu koja čita ime kao prvi argument, a zatim grad kao drugi. Međutim, ako prvo prođete grad, a zatim ime, tada se ime smatra gradom i obrnuto. Zaronimo dublje u sljedeću skriptu da bismo razumjeli ovaj koncept:

#!/bin/bash

jeka 'Ovdje su uneseni podaci'

jeka 'ime $1'

jeka 'grad $2'

Morate dodati ime i grad u vrijeme izvršavanja skripte u terminalu:

Završavati

Ovo je sve što trebate znati o metodama za rukovanje argumentima naredbenog retka u bashu. Objasnili smo različite pristupe koje možete isprobati s odgovarajućim primjerima. Postoje razne naredbe ako želite dodati argumente u skriptu. Stoga svakako posjetite Linuxhint kako biste saznali više o njima.