Što je pozicijski parametar?

Pozicijski parametar je argument naveden u naredbenom retku koji se koristi za pokretanje trenutnog procesa u ljusci. Vrijednosti parametara pozicije pohranjuju se u poseban skup varijabli koje održava ljuska.

Varijable koje pohranjuju pozicijske parametre

Tipičan primjer ljuske koja koristi pozicijske parametre je bash. Možete koristiti bash na Linux, BSD, MacOS X i Windows 10.

Razmotrite sljedeću bash naredbu. Ime naredbe je moja naredba . Naredba za naredbe ima tri parametra: jedan, dva i tri četiri .

 moja zapovijed jedna dva "tri četiri" 

Savjet: Pozicijski parametri su ograničeni razmakom. Ljuska interpretira stvari iza prostora kao pojedinačne parametre. Ako sam parametar sadrži razmak, stavite ga u navodnike, kao u "tri četiri", gore.

Dok se moja naredba izvodi, bash mu daje sljedeće varijable ljuske:

Naziv varijableVrijednost
$ 0mycommand
$ 1jedan
$ 2dva
$ 3tri četiri
$ #3
[zaštićeno e-poštom]jedan dva tri četiri
$ *jedan dva tri četiri

Varijabla $ 0 postavljena je na prvu riječ naredbe - ime naredbe. Ova je varijabla korisna jer se naredbe mogu preimenovati ili izvršavati pomoću simboličke veze. Neki se programi ponašaju drugačije ovisno o nazivu naredbe koja se koristi za pokretanje programa. $ 0 omogućuje programu da vidi koje je ime naredbe pokrenulo.

Varijable $ 1, $ 2 i $ 3 sadrže vrijednosti prvog, drugog i trećeg parametra. Ako je postojao četvrti parametar, njegova vrijednost bi se smjestila u varijablu $ 4 . Parametrima većim od 9 može se pristupiti pomoću vitičastih zagrada oko broja; na primjer, $ {10} bi bio deseti parametar, a $ {123} 123 .

Varijabla $ # sadrži broj pozicijskih parametara, isključujući $ 0.

Varijabla [email protected] sadrži vrijednost svih pozicijskih parametara, isključujući $ 0.

Varijabla $ * ista je kao i [email protected], osim kada je dvostruko navedena. Kada je zatvoren u dvostruke navodnike, $ * se širi na $ 1c $ 2c $ 3c ... gdje je c prvi znak $ IFS, bashova interna varijabla separatora polja. IFS se koristi za cijepanje riječi, a zadana vrijednost je "prostor, tab, ili novi red" - ovdje bash vidi kraj jedne riječi i početak sljedećeg.

Ako je vrijednost $ IFS " _ " (donja crta), "[email protected]" proširuje se na:

 jedan dva tri četiri 

Dok se "$ *" proširuje na:

 jedan dva tri četiri 

Primjeri

Evo nekoliko primjera korištenja pozicijskih parametara u bash.

Koristeći postavljenu ugrađenu naredbu, vrijednost [email protected] može se mijenjati za trenutnu ljusku. Sve nakon seta - bit će registrirano kao pozicijski parametar.

 set - jedan dva "tri četiri" 

Sada možemo ponoviti ove varijable pomoću ... za :

 za arg u [zaštićenoj e-pošti]; do echo "$ arg"; učinio 
 jedan dva tri četiri 

U bash, [email protected] je zadani popis za iteraciju kada se pokrećete, tako da i ova naredba radi:

 za arg; do echo "$ arg"; učinio 
 jedan dva tri četiri 

Ponavljanje preko "$ *" (s dvostrukim navodnicima) osigurat će spojni niz pozicijskih parametara, pridruženih prvom znaku $ IFS :

 IFS = ""; za arg u "$ *"; do echo "$ arg"; učinio 
 jedan dva tri četiri 

Za više informacija pogledajte dokumentaciju školske ljuske bash.

Parametar, programski uvjeti