Mis on positsiooniparameeter?

Asukohaparameeter on käsureal määratud argument, mida kasutatakse praeguse protsessi käivitamiseks kestas. Positsiooniliste parameetrite väärtused salvestatakse spetsiaalsesse muutujate kogusse, mida haldab kest.

Asukohaparameetreid salvestavad muutujad

Positsionaalseid parameetreid kasutava kesta tüüpiline näide on bash. Võite kasutada bash-i Linux, BSD, MacOS X ja Windows 10.

Vaadake järgmist bash-käsku. Käsu nimi on mycommand . Käsureal on kolm parameetrit: üks, kaks ja kolm .

 mulle üks kaks "kolm nelja" 

Näpunäide: positsiooniparameetrid piiritletakse tühikuga. Koor tõlgendab asju pärast tühikuid kui individuaalseid parameetreid. Kui parameeter sisaldab ruumi, lisage see jutumärkidesse, nagu ülalpool "kolm nelja".

Kuigi mycommand töötab, pakub bash sellele järgnevaid kestamuutujaid :

Muutuja nimiVäärtus
$ 0mycommand
$ 1üks
$ 2kaks
$ 3kolm nelja
$ #3
[email kaitstud]üks kaks kolm neli
$ *üks kaks kolm neli

Muutuja $ 0 on määratud käsu esimesele sõnale - käsu nimele. See muutuja on kasulik, sest käske saab ümber nimetada või teostada sümboolse lingi abil. Mõned programmid käituvad erinevalt sõltuvalt programmi käivitamiseks kasutatavast käsu nimest. $ 0 võimaldab programmil näha, milline käsu nimi on käivitatud.

Muutujad $ 1, $ 2 ja $ 3 sisaldavad vastavalt esimese, teise ja kolmanda parameetri väärtusi. Neljanda parameetri olemasolu korral paigutatakse selle väärtus muutujasse $ 4 . Parameetreid, mis on suuremad kui 9, on võimalik kasutada numbri ümber lokkis traksid; näiteks oleks $ {10} kümnes parameeter ja $ {123} oleks 123.

Muutuja $ # sisaldab positsiooniparameetrite arvu, va $ 0.

Muutuja [email protected] sisaldab kõigi positsiooniparameetrite väärtust, va $ 0.

Muutuja $ * on sama, mis [kaitstud e-posti teel], välja arvatud juhul, kui see on topelt tsiteeritud. Kahe tsitaadi korral laieneb $ * $ 1c $ 2c $ 3c ... kus c on $ IFS-i, bash-i sisemise välieraldaja muutuja esimene märk. IFS-i kasutatakse sõna jagamiseks ja selle vaikeväärtus on "space, tab või newline" - see on koht, kus bash näeb ühe sõna lõppu ja järgmise algust.

Kui $ IFS väärtus on " _ " (allajoon), laieneb "[email protected]" :

 üks kaks kolm neli 

Kuna "$ *" laieneb:

 üks kaks kolm neli 

Näited

Siin on mõned näited positsiooniparameetrite kasutamisest bashis.

Rakendatud sisseehitatud käsu abil saab [e-posti kaitstud] väärtust praeguse kestuse jaoks muuta. Kõik pärast seadistamist registreeritakse positsiooniparameetrina.

 set - üks kaks "kolm nelja" 

Nüüd on võimalik nende muutujate üle kordada, kasutades ... in :

 arg jaoks [email protected]; echo "$ arg"; tehtud 
 üks kaks kolm neli 

Bash'is on [email protected] vaikimisi loend, mida iteriseeritakse, nii et see käsk toimib ka:

 arg jaoks; echo "$ arg"; tehtud 
 üks kaks kolm neli 

"$ *" (Koos tsiteeritud jutumärkidega) sisestamine annab positsiooniparameetrite kokkuvõtliku rea, mis on ühendatud $ IFS esimese märgiga:

 IFS = ", "; arg jaoks "$ *"; echo "$ arg"; tehtud 
 üks kaks kolm neli 

Lisateabe saamiseks vaadake bash-käsurea dokumentatsiooni.

Parameeter, programmeerimise tingimused