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 varijable | Vrijednost |
---|---|
$ 0 | mycommand |
$ 1 | jedan |
$ 2 | dva |
$ 3 | tri č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