Ero sivun ”Bash-skriptaus” versioiden välillä

Siirry navigaatioon Siirry hakuun
570 merkkiä lisätty ,  30. heinäkuuta 2008
→‎Joukot: Lisätty huomio siitä, mitä bash tulkitsee ja mikä jää suoritettavalla ohjelmalle
p (tämä taitaa kyllä olla ihan asiallinen)
(→‎Joukot: Lisätty huomio siitä, mitä bash tulkitsee ja mikä jää suoritettavalla ohjelmalle)
Rivi 201: Rivi 201:


Puretaanpa hieman tuota komentoa. <tt>ma{ti,rta}</tt> tuottaa sanat mati ja marta. Kun joukon merkinnän ulkopuolella on n, liitetään jokaisen joukon sisällä olevan alkion perään n, jolloin alaviivaa edellä oleva osuus tuottaa sanat matin, martan ja jorman. Jälkimmäinen osuus toimii samalla tavalla, sanojen työ ja koti perään liitetään sana hakemisto. Näin saamme lyhyellä komennolla aikaan paljon.
Puretaanpa hieman tuota komentoa. <tt>ma{ti,rta}</tt> tuottaa sanat mati ja marta. Kun joukon merkinnän ulkopuolella on n, liitetään jokaisen joukon sisällä olevan alkion perään n, jolloin alaviivaa edellä oleva osuus tuottaa sanat matin, martan ja jorman. Jälkimmäinen osuus toimii samalla tavalla, sanojen työ ja koti perään liitetään sana hakemisto. Näin saamme lyhyellä komennolla aikaan paljon.
Tärkeä huomio on, että <tt>{}</tt>-joukon tulkitsee bash-komentotulkki eikä ohjelma, jonka yhteydessä <tt>{}</tt>-joukkoa käytetään. Käytännössä tämä tarkoittaa, että ensin bash ikään kuin avaa joukon ja vasta sen jälkeen suorittaa komentorivin. Tässä esimerkissä <tt>mkdir</tt>-ohjelma saa parametreikseen vain listan luotavista hakemistoista eikä <tt>mkdir</tt> edes tiedä, että käytettiin <tt>{}</tt>-joukkoa:
mkdir matin_työhakemisto matin_kotihakemisto martan_työhakemisto martan_kotihakemisto jorman_työhakemisto jorman_kotihakemisto


Tässä huomataan myös, että komentoja voi käyttää aivan normaalien [[Komentorivikomennot|komentoriviohjelmien]] kanssa, sillä bash käsittelee syötteen, ja suorittaa skriptit antaen ohjelmalle syötteenä skriptin tulosteen.
Tässä huomataan myös, että komentoja voi käyttää aivan normaalien [[Komentorivikomennot|komentoriviohjelmien]] kanssa, sillä bash käsittelee syötteen, ja suorittaa skriptit antaen ohjelmalle syötteenä skriptin tulosteen.
Rekisteröitymätön käyttäjä

Navigointivalikko