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

878

    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. Ikävöin sinua kokoyön!

      En halua odottaa, että voisin näyttää sinulle kuinka paljon rakastan sinua. Toivon, että uskot, että olen varsin hullun
      Ikävä
      51
      3585
    2. Näen jatkuvasti Sompasaunalla alastomia miehiä ja naisia

      jotka menevät siihen viereiseen rantaan myös uimaan alasti. Sompasaunat on siis Mustikkamaalla Helsingissä, ja kuljen si
      Maailman menoa
      114
      2480
    3. Kova karman laki

      Karman lain kautta pahantekijä tehdessään pahaa toteuttaa koston ja rangaistuksen sille jolle pahaa on tehty. Tämä tarko
      Hindulaisuus
      593
      2273
    4. Päivieni piristys, missä olet?

      Toit iloa ja valoa mun elämään ☀️ Nyt mennyt kohta viikko ettei ole nähty. Kaipaan nähdä sua silti ja pelkään vaikka tei
      Ikävä
      19
      2026
    5. KALAJOEN UIMAVALVONTA

      https://www.kalajokiseutu.fi/artikkeli/ei-tulisi-mieleenkaan-jattaa-pienta-yksinaan-hiekkasarkkien-valvomattomalla-uimar
      Kalajoki
      76
      1730
    6. Jos sinä olisit pyrkimässä elämääni takaisin

      Arvelisin sen johtuvan siitä, että olisit taas polttanut jonkun sillan takanasi. Ei taida löytyä enää kyliltä naista, jo
      Tunteet
      43
      1658
    7. Älä mahdollisesti ota itseesi

      En voinut tietää. Sitäpaitsi.. niin
      Ikävä
      20
      1648
    8. Helena ja Mikko Koivun ero jatkuu edelleen ja loppua ei näy.

      Voi eikä, miksi menee noin vaikeaksi avioero ja sopua ei tää ex- pari vaan saa.
      Kotimaiset julkkisjuorut
      137
      1546
    9. Ota nainen yhteyttä ja tee Tikusta asiaa?

      Niin sitten minä teen Takusta asiaa.
      Ikävä
      28
      1446
    10. Millainen kaivattusi luonne on?

      Millaisia luonteenpiirteitä arvostat kaivatussa? Oletteko samanlaisia luonteeltanne?
      Ikävä
      94
      1427
    Aihe