
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 premennej | hodnota |
---|---|
$ 0 | mycommand |
$ 1 | jeden |
$ 2 | dva |
$ 3 | tri š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