
Muuttujat, jotka tallentavat paikkaparametreja
Tyypillinen esimerkki paikannusparametreja käyttävästä kuoresta on bash. Voit käyttää bashia Linuxissa, BSD: ssä, MacOS X: ssä ja Windows 10: ssä.
Harkitse seuraavaa bash-komentoa. Komennon nimi on mycommand . Komentorivillä on kolme parametria: yksi, kaksi ja kolme neljä .
mycommand yksi kaksi "kolme neljä"
Vihje: Paikalliset parametrit rajataan välilyönnillä. Kuori tulkitsee asiat tilojen jälkeen yksittäisinä parametreina. Jos parametrissa itsessään on välilyönti, liitä se lainausmerkkeihin, kuten edellä mainitussa kohdassa "kolme neljä".
Vaikka mycommand on käynnissä, bash tarjoaa sille seuraavat kuorimuuttujat :
Muuttujan nimi | Arvo |
---|---|
$ 0 | mycommand |
$ 1 | yksi |
$ 2 | kaksi |
$ 3 | kolme neljä |
$ # | 3 |
[sähköposti suojattu] | yksi kaksi kolme neljä |
$ * | yksi kaksi kolme neljä |
Muuttuja $ 0 asetetaan komennon ensimmäiselle sanalle - komentonimelle. Tämä muuttuja on hyödyllinen, koska komentoja voidaan nimetä uudelleen tai suorittaa symbolisella linkillä. Jotkin ohjelmat toimivat eri tavalla ohjelman käskystä käytetyn komennon mukaan. $ 0 sallii ohjelman nähdä, mitä komennon nimi käynnisti.
Muuttujat $ 1, $ 2 ja $ 3 sisältävät ensimmäisen, toisen ja kolmannen parametrin arvot. Jos neljäs parametri, sen arvo sijoitettaisiin muuttujaan 4 . Parametreja, jotka ovat suurempia kuin 9, voidaan käyttää käyttämällä kaarevia kiinnikkeitä numeron ympärille; esimerkiksi $ {10} olisi kymmenes parametri ja $ {123} olisi 123rd.
Muuttuja $ # sisältää paikkaparametrien lukumäärän, lukuun ottamatta 0 dollaria.
Muuttuja [email protected] sisältää kaikkien paikkaparametrien arvon lukuun ottamatta 0 dollaria.
Muuttuja $ * on sama kuin [sähköpostilla suojattu], paitsi silloin, kun se on kaksinkertainen. Kun $ * on suljettu lainausmerkeissä, $ * laajenee $ 1c $ 2c $ 3c ... missä c on $ IFS: n, bash: n sisäisen kenttäerottimen muuttujan ensimmäinen merkki. IFS: ää käytetään sanojen jakamiseen, ja sen oletusarvo on "tila, välilehti tai uusi rivi" - tämä tarkoittaa sitä, että bash näkee yhden sanan loppuun ja seuraavan alkuun.
Jos $ IFS: n arvo on " _ " (alaviiva), "[email protected]" laajenee:
yksi kaksi kolme neljä
"$ *" Laajenee:
yksi kaksi kolme neljä
esimerkit
Seuraavassa on muutamia esimerkkejä paikkaparametrien käytöstä bashissa.
Asennetun sisäänrakennetun komennon avulla [email protected] -arvoa voidaan muokata nykyiselle kuorelle. Kaikki asetusten jälkeen - rekisteröidään sijaintiparametrina.
set - yksi kaksi "kolme neljä"
Nyt voimme iteroida näiden muuttujien yli käyttämällä ...:
argille [sähköposti suojattu]; echo "$ arg"; tehty
yksi kaksi kolme neljä
Bashissa [sähköposti suojattu] on oletuslista, jota käytetään, kun käytät, joten tämä komento toimii myös:
argille; echo "$ arg"; tehty
yksi kaksi kolme neljä
"$ *": N (kaksinkertaisten lainausmerkkien) myötä saadaan yhdistetty merkkijono paikkaparametreihin, jotka on yhdistetty $ IFS : n ensimmäiseen merkkiin:
IFS = ""; argille "$ *"; echo "$ arg"; tehty
yksi kaksi kolme neljä
Lisätietoja on bash-komentokuoren dokumentaatiossa.
Parametri, ohjelmointiehdot