Pozíciós paraméter



Pozíciós paraméterek

NAK NEK helyzeti paraméter egy argumentum, amelyet a parancs sor , az aktuális folyamat héjban történő elindítására szolgál. A pozícióparaméterek értékei egy speciális készletben vannak tárolva változók a héj fenntartja.



A helyzet paramétereit tároló változók

A helyzetparamétereket használó shell tipikus példája a bash . Használhatja a bash on-t Linux , BSD , macOS X és Windows 10 .

Vegye figyelembe a következő bash parancsot. A parancs neve: parancsnokom . A parancssornak három paramétere van: egy , kettő , és három négy .



mycommand one two 'three four'
Tipp

A helyzet paraméterei a következők elhatárolva szóközzel. A héj a szóközök utáni dolgokat egyedi paraméterként értelmezi. Ha maga a paraméter tartalmaz szóközt, zárja be idézőjel , mint a fenti „három négyben”.

Míg parancsnokom fut, a bash a következő héjváltozókkal látja el:



Változó neve Érték
0 USD parancsnokom
1 USD egy
2 USD kettő
3 USD három négy
$ # 3
[e-mail védett] egy kettő három négy
$ * egy kettő három négy

A változó 0 USD a parancs első szavára van beállítva - a parancs neve. Ez a változó azért hasznos, mert a parancsokat át lehet nevezni vagy végrehajtani az a használatával szimbolikus link . Egyes programok a program futtatásához használt parancsnévtől függően eltérő módon viselkednek. 0 USD lehetővé teszi a program számára, hogy megnézze, milyen parancsnév indította el.

A változók 1 USD , 2 USD , és 3 USD tartalmazzák az első, a második és a harmadik paraméter értékét. Ha lenne egy negyedik paraméter, akkor az értéke a változóba kerül 4 USD . A 9-nél nagyobb paraméterek göndör zárójelek segítségével érhetők el a szám körül; például, {10} USD a tizedik paraméter lenne, és {123} USD a 123. lenne.

A változó $ # tartalmazza a helyzeti paraméterek számát, a $ 0 kivételével.

A változó [e-mail védett] tartalmazza az összes helyzeti paraméter értékét, a $ 0 kivételével.

A változó $ * ugyanaz mint [e-mail védett] , kivéve, ha duplán idézik. Dupla idézőjelekbe foglalva, $ * tágul $ 1c $ 2c $ 3c ... hol c első karaktere $ IFS , bash belső térelválasztó változója. Az IFS-t a szavak felosztására használják, és alapértelmezett értéke a „szóköz, tabulátor vagy újsor” - itt látja a bash egy szó elejét és végét.

Ha az értéke $ IFS van ' _ '(an aláhúzás ), '[email protected]' kibővül:

 one two three four

Mivel '$ *' kibővül:

 one_two_three four

Példák

Íme néhány példa a bash helyzeti paraméterek használatára.

Használni a készlet beépített parancs, értéke [e-mail védett] az aktuális héjhoz módosítható. Minden utána készlet - pozícióparaméterként van regisztrálva.

set -- one two 'three four'

Most a változókkal iterálhatunk a mert ... ban ben :

for arg in [email protected] ; do echo '$arg'; done
one two three four

Bash-ban, [e-mail védett] az alapértelmezett lista, amelyet a futtatáskor meg kell ismételni mert , tehát ez a parancs is működik:

for arg; do echo '$arg'; done
one two three four

Iterálva '$ *' (dupla idézőjelekkel) a összefűzve a pozícióparaméterek húrja, összekapcsolva a $ IFS :

IFS=','; for arg in '$*'; do echo '$arg'; done
one,two,three four

További információkért lásd: a bash parancshéj .