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

909

    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. Mitä hyvää rikkaiden hyysääminen Suomelle tuonut?

      Minäpä vastaan: ei yhtikäs mitään, vaan pelkkää vahinkoa. Demareiden ansiosta Suomen valtio oli käytännössä vielä 1980-
      Maailman menoa
      18
      5928
    2. Grahn-Laasonen: "Kansalainen joutuu pettymään, jos demareita äänestää"

      Ministeri viittaa tuoreeseen Helsingin Sanomien juttuun, jossa demarijohtajan keinoja Suomen suunnan muuttamiseksi esite
      Maailman menoa
      85
      5542
    3. Mitä haluaisit sanoa tänään hänelle?

      Rakastamallesi ihmiselle.
      Ikävä
      125
      3554
    4. Tytti Tuppurainen häpäisi Suomen epäisänmaallisella lausunnollaan USA:n ulkoministerille Rubiolle.

      https://www.is.fi/politiikka/art-2000011816267.html Miksi Tytti Tuppurainen päästetään antamaan typeriä lausuntoja noin
      Maailman menoa
      96
      3543
    5. Pystyisitkö olla

      Kanssani kaiken sotkun jälkeen? Ainakaan tunteet ei ole loppuneet
      Ikävä
      121
      1301
    6. Paras muistosi

      kaivatustasi?
      Ikävä
      57
      1247
    7. Miksi miehen on hankala ymmärtää

      Että hänen on tehtävä aloite. Niin sen kuuluu mennä luonnollisesti.
      Ikävä
      130
      1172
    8. Hei kuule nainen

      Seuraavan kerran kun nähdään, puhu minulle jooko! Näin toivoo mies
      Ikävä
      38
      979
    9. Mitä puuhailet nyt ystävänpäivänä

      nainen, kun et ole mun kanssa?
      Ikävä
      45
      963
    10. Mitä sä musta oikein haluat?!

      Anna olla jo.
      Ikävä
      26
      929
    Aihe