Čo je pozičný parameter?

Pozičný parameter je argument zadaný na príkazovom riadku, ktorý sa používa na spustenie aktuálneho procesu v shell. Hodnoty pozičných parametrov sú uložené v špeciálnej množine premenných, ktoré shell zachováva.

Premenné, ktoré ukladajú pozičné parametre

Typickým príkladom shellu, ktorý používa pozičné parametre, je bash. Môžete použiť bash na Linuxe, BSD, MacOS X a Windows 10.

Zvážte nasledujúci príkaz bash. Názov príkazu je mycommand . Príkazový riadok má tri parametre: jeden, dva a tri štyri .

 jeden príkaz "dve štyri" 

Tip: Parametre pozícií sú ohraničené medzerou. Shell interpretuje veci za medzerami ako jednotlivé parametre. Ak samotný parameter obsahuje medzeru, uzavrite ho do úvodzoviek, ako je uvedené vyššie v "tri štyri".

Kým mycommand je spustený, bash poskytuje nasledujúce premenné shell: \ t

Názov premennejhodnota
$ 0mycommand
$ 1jeden
$ 2dva
$ 3tri štyri
$ #3
[email protected]jeden dva tri štyri
$ *jeden dva tri štyri

Premenná $ 0 je nastavená na prvé slovo príkazu - názov príkazu. Táto premenná je užitočná, pretože príkazy je možné premenovať alebo vykonať pomocou symbolického odkazu. Niektoré programy sa chovajú odlišne v závislosti od názvu príkazu použitého na spustenie programu. $ 0 umožňuje programu vidieť, aký názov príkazu sa spustil.

Premenné $ 1, $ 2 a $ 3 obsahujú hodnoty prvého, druhého a tretieho parametra. Ak by existoval štvrtý parameter, jeho hodnota by sa umiestnila do premennej $ 4 . Parametre väčšie ako 9 sú prístupné pomocou zložených zátvoriek okolo čísla; napríklad $ {10} by bol desiatym parametrom a $ {123} by bol 123rd.

Premenná $ # obsahuje počet pozičných parametrov, okrem $ 0.

Premenná [email protected] obsahuje hodnotu všetkých pozičných parametrov, okrem $ 0.

Premenná $ * je rovnaká ako hodnota [email protected], okrem prípadu, keď je dvojitá citácia. Pri uzavretí v dvojitých úvodzovkách sa $ * rozširuje na $ 1c $ 2c $ 3c ... kde c je prvý znak premennej $ IFS, bash interného oddeľovača polí. IFS sa používa na rozdelenie slov a jeho predvolená hodnota je "medzera, záložka alebo nový riadok" - toto je miesto, kde bash vidí koniec jedného slova a začiatok ďalšieho.

Ak je hodnota $ IFS " _ " (podčiarkovník), "[protected email]" sa rozšíri na:

 jeden dva tri štyri 

Zatiaľ čo "$ *" sa rozširuje na:

 jeden dva tri štyri 

Príklady

Tu je niekoľko príkladov použitia pozičných parametrov v bash.

Pomocou nastaveného vstavaného príkazu môže byť hodnota [email protected] upravená pre aktuálny shell. Všetko po nastavení - bude zaregistrované ako pozičný parameter.

 set - dve dve "tri štyri" 

Teraz môžeme iterovať tieto premenné pomocou ... v :

 pre arg v [email protected]; do echo "$ arg"; hotový 
 jeden dva tri štyri 

V bash, [email protected] je predvolený zoznam pre iteráciu pri spustení, takže tento príkaz tiež funguje:

 pre arg; do echo "$ arg"; hotový 
 jeden dva tri štyri 

Iterácia nad "$ *" (s dvojitými úvodzovkami) poskytne zreťazený reťazec pozičných parametrov, spojený s prvým znakom $ IFS :

 IFS = ""; pre arg v "$ *"; do echo "$ arg"; hotový 
 jeden dva tri štyri 

Ďalšie informácie nájdete v dokumentácii k príkazovému riadku bash.

Parameter, Termíny programovania