UNIX Shell- ohjelmointi

JkTuk

Pitäisi ohjelmoida UNIX- käyttöjärjestelmään Shell- kielellä komentotulkki joka tutkisi onkojärjestelmään kirjautuneena viisi käyttäjää joiden tunnukset tiedetään. Mikäli käyttäjä löytyy hänestä pitäisi pystyä näyttämään tarkempia tietoja. Miten tällaisen ohjelman pystyy tekemään? Miten saa aikaan sellaisen ehtolauseen että mikäli käyttäjä löytyy, suoritetaan komento joka näyttää hänestä tarkempia tietoja ja jatkaa sitten seuraavaan käyttäjään ja niin edelleen? Rautalangasta väännetyt ohjeet tai sitten linkki sellaiselle sivulle jossa viimmisen päälle ohjeet aiheesta. Olen aivan aloittelija ohjelmoinnissa.

2

864

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Mik

      Siis olet tekemässä komentotulkkiskriptiä etkä kokonaan uutta komentotulkkia ? Oletaan nyt niin, että tarkoitit tuota, niillä kun on olennainen ero. Mille komentotulkille ohjelma pitäisi olla ?

      Homman voinee tehdä helposti komennoilla w, grep, sekä komentotulkkikohtaisilla ehto- ja toistolauseilla (useimmissa if ja while). Lisäksi tulosteiden putkituksella (|:lla) saadaan selkeä toteutus.

      Koska et kertonut mille komentotulkille ohjelma (hmm...koulutehtävä kuitenkin) pitäisi tehdä, niin voin hahmotella jonkun pohjan mistä lähteä liikkelle.

      bashille while-looppia käyttävä versio (GNU-työkaluilla):

      cat nimitiedosto | while read nimi;do
      w | grep "^$nimi "
      done

      Tuossa selvitään näköjään ilmankin iffiä, koska w:n tulosteesta tulostuu vain ne rivit, jossa on alussa käyttäjätunnus (sekä sen jälkeen tyhjä, jotta esim. tunnus abc ei tulostaisi abcd:n tietoja, jos myös abcd on logannut sisään). Tiedostossa nimitiedosto on listattu käyttäjätunnukset.

      Toinen hyvin lyhyt tapa on laittaa grepille optio -f ja laittaa ns. säännölliset lausekkeet tiedostoon, eli joka riville
      ^tunnus1
      ^tunnus2
      ...jne.

      Muista se tyhjä välilyönti tunnuksen loppuun, ^ tarkoittaa rivin alkua (ks. man grep). Nyt
      "w | grep -f tiedosto" toiminee vastaavasti.
      Tapoja tehdä yksi juttu on paljon erilaisia.
      Alkuun tulee tehtyä paljon turhaa, ajan kanssa skriptit lyhenee kummasti. Itsekin aloittelijana ollessani tein jonkun sivun mittaisen skriptin, jonka myöhemmin lyhensin alle viiteen riviin toiminnallisuuden sen kummemmin heikentymättä.

      Jos käytät bashia, niin katso http://www.tldp.org/LDP/abs/html/

    • banaanivaaka

      Riippuu mitä tietoja haluat? Onko tiedot erillisessä tiedostossa vai kelpaako ihan finger-tieto?

      Esim:

      for nimi in `who | cut -d " " -f1 | sort | uniq` ; do finger $nimi ; done

      Jos taas on erillisessä tiedostossa niin..

      grep $nimi tiedosto.txt

      fingerin sijaan.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mies, mitä minun pitäisi tehdä

      Niin, mitä naisen siis pitäisi tehdä, että lähestyisit ja tekisit aloitteen? Mikä on riittävä kiinnostuksen osoitus juur
      Ikävä
      180
      2200
    2. Miksi teillä meni...

      ...välit poikki kaivattusi kanssa?
      Ikävä
      175
      1821
    3. Toivottavasti et mussukka elättele toiveita meikäläisen suhteen

      Tiedän mitä olet touhunnut joten aivan turha haaveilla mistään enää 👍
      Ikävä
      170
      1692
    4. Sofia Virralla ja Minja Koskelalla ei mitään käsitystä terveyskeskusmaksuista!

      Vasemmistopimut Sofia ja Minja täysin ulkona sote asioista, ei minkäänlaista käsitystä edes mittaluokasta, missä terveys
      Maailman menoa
      109
      1503
    5. Summit-tippuja Nicola sai Carolalta yllättävän viestin - Some älähtää rajusti: "Älä viitsi..."

      The Summit Suomi -kisa käy kuumana kylmässä Norjan vuoristossa. Nicola tiputettiin kisasta juuri ennen finaalia. Likaise
      Tv-sarjat
      25
      1479
    6. Nainen näytät mummolta. :D

      Siks sua ei huoli kukaan.
      Ikävä
      109
      1210
    7. Juusolle sataa vihaisia viestejä hoitajilta ja loput nauravat hänelle

      Ei löydy montaakaan, joka kehuisi Juuson toimintaa ministerinä: "Selvä enemmistö Juuson päivitykseen reagoineista on su
      Perussuomalaiset
      162
      1085
    8. Persuehdokas uhkasi tappaa "jätkän" ja ravintolayrittäjän

      Kuuntele tästä kuinka meuhkaa. https://www.iltalehti.fi/politiikka/a/4eb3034d-48c5-4f31-b53c-42be3dc9607c
      Perussuomalaiset
      77
      1073
    9. Kompostointitarkastaja tuli tarkastukselle!

      En ole ikinä kompostoinnut ja eilen kävi kompostointitarkastaja kylässä. Tosi hianoa byrokratiaa taas: "Laki edellyttää,
      57
      930
    10. Rokotevastaiset aiheuttaneet lasten kuolemat USA:ssa, eivätkä pyydä anteeksi

      Jo kaksi lasta kuollut tuhkarokkoon Texasissa, koska rokotevastaiset ovat toimillaan tuhonneet suojaavan rokotekattavuud
      Maailman menoa
      238
      925
    Aihe