Rekisteröitymätön käyttäjä
Ero sivun ”Bash-skriptaus” versioiden välillä
Siirry navigaatioon
Siirry hakuun
→Joukot: Lisätty huomio siitä, mitä bash tulkitsee ja mikä jää suoritettavalla ohjelmalle
Pb (keskustelu | muokkaukset) 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. |