Pozicionālais parametrs



Pozicionālie parametri

TO pozicionālais parametrs ir arguments, kas norādīts vietnē komandrinda , ko izmanto, lai pašreizējo procesu palaistu čaulā. Pozicionālo parametru vērtības tiek saglabātas īpašā kopā mainīgie uztur čaula.



Mainīgie, kas glabā pozīcijas parametrus

Tipisks čaulas, kurā tiek izmantoti pozicionālie parametri, piemērs ir bash . Jūs varat izmantot bash on Linux , BSD , macOS X un Windows 10 .

Apsveriet šo komandu bash. Komandas nosaukums ir mycommand . Komandrindai ir trīs parametri: viens , divi , un trīs četri .



mycommand one two 'three four'
Padoms

Pozicionālie parametri ir norobežots ar atstarpi. Korpuss interpretē lietas pēc atstarpēm kā individuālus parametrus. Ja parametrā ir atstarpe, norobežojiet to pēdiņas , tāpat kā iepriekš tekstā “trīs četri”.

Kamēr mycommand darbojas, bash nodrošina to ar šādiem čaulas mainīgajiem:



Mainīgā nosaukums Vērtība
0 USD mycommand
1 USD viens
2 USD divi
3 USD trīs četri
$ # 3
[e-pasts aizsargāts] viens divi trīs četri
$ * viens divi trīs četri

Mainīgais 0 USD ir iestatīts uz komandas pirmo vārdu - komandas nosaukums. Šis mainīgais ir noderīgs, jo komandas var pārdēvēt vai izpildīt, izmantojot a simboliska saite . Dažas programmas izturas atšķirīgi atkarībā no komandas nosaukuma, kas izmantots programmas darbināšanai. 0 USD ļauj programmai redzēt, kāds komandas nosaukums to palaida.

Mainīgie 1 USD , 2 USD , un 3 USD satur attiecīgi pirmā, otrā un trešā parametra vērtības. Ja būtu ceturtais parametrs, tā vērtība tiktu ievietota mainīgajā 4 USD . Parametriem, kas lielāki par 9, var piekļūt, izmantojot cirtainās iekavas ap skaitli; piemēram, {10} USD būtu desmitais parametrs, un {123} USD būtu 123. vieta.

Mainīgais $ # satur pozīcijas parametru skaitu, izņemot $ 0.

Mainīgais [e-pasts aizsargāts] satur visu pozīcijas parametru vērtību, izņemot $ 0.

Mainīgais $ * ir tas pats, kas [e-pasts aizsargāts] , izņemot gadījumus, kad tas ir divreiz citēts. Kad tas ir ievietots pēdiņās, $ * izplešas līdz $ 1c $ 2c $ 3c ... kur c ir pirmais personāžs $ IFS , bash iekšējā lauka atdalītāja mainīgais. IFS tiek izmantots vārdu sadalīšanai, un tā noklusējuma vērtība ir 'atstarpe, cilne vai jauna rindiņa' - šeit Bash redz viena vārda sākumu un beigas.

Ja vērtība $ IFS ir ' _ '(an pasvītrojums ), “[e-pasts aizsargāts]” paplašinās līdz:

 one two three four

Tā kā '$ *' paplašinās līdz:

 one_two_three four

Piemēri

Šeit ir piemēri, kā izmantot pozīcijas parametrus bash.

Izmantojot komplekts iebūvēta komanda, vērtība [e-pasts aizsargāts] var modificēt pašreizējai čaulai. Viss pēc tam komplekts - ir reģistrēts kā pozīcijas parametrs.

set -- one two 'three four'

Tagad mēs varam atkārtot šos mainīgos, izmantojot priekš ... iekšā :

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

Bashā [e-pasts aizsargāts] ir noklusējuma saraksts, kas jāpārkārto, palaižot priekš , tāpēc darbojas arī šī komanda:

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

Atkārtojas '$ *' (ar divkāršām pēdiņām) nodrošina a sasiets pozīcijas parametru virkne, kas savienota ar $ IFS :

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

Papildinformāciju skatiet dokumentācijā bash komandas apvalks .