Unix ja shell-ohjelmointi 2001, demo 2 Unix ja shell-ohjelmointi 2001, demo 2 (31.1.2001)

Yritä varautua erikoistapauksiin ja virhetilanteisiin!

  1. Kirjoita funktio, joka

    1. tulostaa argumenttinsa yksitellen omille riveilleen numeroituina heittomerkeissä (tyyliin 1: 'aasi');
    2. tulostaa argumenttinsa merkki kerrallaan pystysuoraan (siis yksi merkki per rivi).

  2. Kirjoita funktio, jolla voi tutkia esiintyykö annetussa merkkijonossa erikoismerkkejä
    | & ; < > ( ) $ ` \ " ' * ? [ # ~ = %
    
    tai välilyönti, tabulaattori tai rivinvaihto siten, että:

    1. ei tulostusta mutta status 1 jos löytyi yksikin noista, muutoin 0,
    2. tulosta lista löytyneistä erikoismerkeistä (ei samaa kahteen kertaan)

  3. Kirjoita sh-skripti, joka etsii argumenttina annetusta hakemistosta kaikki skriptit, joiden alussa on #! ja kertoo millä shellillä (tms) ne suorittuisivat.

  4. Kirjoita sh-skripti, joka lukee tiedostosta pilkuilla erotettuja kokonaislukuja, laskee ne yhteen riveittäin ja tulostaa joka rivin summan, ja lopuksi kaikkien rivien yhteissumman.

  5. Kirjoita sh-skripti addhandle, joka lukee yhdestä tiedostosta ihmisten nimiä (sukunimi viimeisenä) ja toisesta lempinimiä (joiden oletetaan olevan samassa järjestyksessä) ja tulostaa ne yhdessä tähän tapaan:
    Kauko "Kake" Virtanen
    ts. lisää lempinimen lainausmerkeissä etu- ja sukunimen väliin.

  6. Kirjoita sh-skripti namesplit, joka lukee edellisen tehtävän tulosteen mallisia tiedostoja ja jakaa ne kahteen tiedostoon siten, että toisessa on etu- ja sukunimet ja toisessa lempinimet. Ts. edellisen käänteisoperaatio.


File translated from TEX by TTH, version 1.98.
On 25 Jan 2001, 13:16.