zapis do suboru

Sekcia: Programovanie 10.12.2008 | 17:20
Grammaton Cleric   Návštevník
cauko riesim skript a mam problem ako zapisat do suboru konkretne v Ubuntu napr. meno uzivatela
    • Re: zapis do suboru 10.12.2008 | 17:29
      Avatar Samuel BWPOW Kupka Almalinux, OpenWRT  Používateľ
      echo $USER > subor.txt
      Strach dát najevo své pocity a zjednat si u druhých respekt je jedním z problémů civilizovaného člověka, který se naučil zpochybňovat svou vlastní pravdu pro zdání objektivity
      • Re: zapis do suboru 10.12.2008 | 19:08
        Grammaton Cleric   Návštevník
        dakujem....a este by som mal jednu malu otazockua to: ako pustim cyklus ktory by sa opakoval po niekolkych sekundach a vzdy ked prebehne tak zapise do subou napr. meno
        • Re: zapis do suboru 10.12.2008 | 19:48
          Avatar Zefram Cochrane MS Windows Vista Ultimate 64bi  Používateľ
          #!/bin/bash
          while true; do
          sleep 10s
          echo $USER > subor.txt
          done

          V jednom riadku:

          while true; do sleep 10s; echo $USER > subor.txt; done

          Oba prerusis stlacenim Ctrl+C

          Ak chces o konkretnom case precitaj si manual "at" (man at) ak nieco serioznejsie chces spustat (napr. kazdy den) tak cron (man cron)
          • Re: zapis do suboru 10.12.2008 | 21:29
            WlaSaTy   Návštevník
            Vcelku zaujimave resenie, zaisovat do kolecka konstantu (login uzivatela pod ktorym je dany skript spusteny) kazdych 10 sekund. Ci uz priamo alebo cez nejaky casovac.

            Nevypytame si zadanie tej domacej ulohy? Myslim ze malo aspon o polku vety viac :-)
            • Re: zapis do suboru 11.12.2008 | 11:08
              Grammaton Cleric   Návštevník
              no tak zadanie znie:
              Syntaxe:
              inout [n]
              n - počet vteřin
              Funkce:
              v zadaném časovém intervalu (standardně každých 60 vteřin) se vypisuje do souboru, kdo se nově přihlásil a kdo se odhlásil. V záhlaví souboru je uvedeno datum a čas spuštění procedury a časový interval.

              • Re: zapis do suboru 11.12.2008 | 12:19
                WlaSaTy   Návštevník
                "kdo se nově přihlásil a kdo se odhlásil" je nieco ine ako len "meno uzivatela".

                last, diff, sort,man, who, finger, getopt. To je len maly vyber nastrojov ktore k tomu budes potrebovat. Ale hlavne si vyber nejaky interpreter v ktorom sa ti to bude lahsie programovat.

                PS: ozaj, si myslis ze profak nebude vediet pouzit google a ze tento portal nie je indexovany?
                • Re: zapis do suboru 11.12.2008 | 12:34
                  Grammaton Cleric   Návštevník
                  lenze ja som po nikom nechcel aby mi to vypracoval ale aby mi odpovedel na zopar otazok ked on je neschopny a sedi si v kabinete
                  • Re: zapis do suboru 11.12.2008 | 20:15
                    WlaSaTy   Návštevník
                    Hmmmm, myslíš že nedostatočne vysvetlil učivo alebo si len nedával pozor?

                    Už sa tu riešili aj ťažšie formy tejto istej úlohy a nie je to tak dávno. Takže niektoré riešenia budú podrobené prezentácii a obhajobe.
                • Re: zapis do suboru 11.12.2008 | 13:12
                  Avatar boko SUSE11.1 64b  Používateľ
                  Mozno by bolo lahsie len to nejako vytahovat cez awk , resp sed z /var/log/messages , co povies.
                  • Re: zapis do suboru 11.12.2008 | 14:04
                    Grammaton Cleric   Návštevník
                    prepac ale ja neviem absolutne ako....som totalny amater a teraz som sa tomu zacal venovat, a kazdopadne nez som zacal pisat sem tak som u konzoly a u slova man.... stravil dost casu na nieco som aj prisiel....len ked sa spytam profaka preco to nefunguje atd. tak mna odfajci nejakou trapnou hlaskou ze to je lahke a pod....viem ze to je lahke lenze nikdo nespadol z neba ucený, tak neviem preco zo mna robi idiota....

                    no tak ten program som vcelku sprovoznil:

                    #!/bin/sh5

                    if expr match "$operacia" "inout"
                    then
                    date > prihlasovanie.txt
                    echo $USER >> prihlasovanie.txt
                    while true
                    do
                    sleep $cas
                    set uzivatel = tail -1 prihlasovanie.txt
                    while test "$USER" = "$uzivatel"
                    do
                    echo "Prave sa odhlasil" >> prihlasovanie.txt
                    echo uzivatel >> prihlasovnie.txt
                    echo "Prave sa prihlasil" >> prihlasovanie.txt
                    echo $USER >> prihlasovanie.txt
                    done

                    done

                    else

                    echo "Zadali ste nespravnu operaciu"
                    fi

                    len netusim ako urobit to ked napises napr. inout 50 tak ti pusti skrypt a nacita 50....to nacitanie ani nie je taky problem ako to aby sa vobec spustil
                    • Re: zapis do suboru 11.12.2008 | 15:07
                      Avatar boko SUSE11.1 64b  Používateľ
                      Hmm, no ja sa tak moc do skriptovania nevyznam, len nejake zaklady, len mam taky pocit ze to este urcite nieje dorobene. Jedine ze by si ty rucne zadaval ze ktory uzivatel sa prihlasil a ktory odhlasil, ale mozno sa pletiem, a co sa tyka tych cisiel tak moc neviem co chces :)
                      Ale isto sa ozve niekto viac skriptovania-znaly (budem sledovat aby som sa naucil tiez ako na to)
          • Re: zapis do suboru 11.12.2008 | 15:50
            Peter S.   Návštevník
            $USER ?? To ma aký praktický význam? Ked skript beží pod jedným užívateľom, logicky sa užívateľ nemôže zmeniť. Podľa mna by malo ísť o monitorovanie s napr. root-ovského účtu alebo akéhokoľvek iného a v tom prípade $USER nebude dávať zoznam iných užívateľov....
            • Re: zapis do suboru 17.12.2008 | 19:36
              Grammaton Cleric   Návštevník
              praktický význam to nemá pretože ho nemá ani učitel.....iba potrebujem aby to ako tak fungovalo.....
    • Re: zapis do suboru 11.12.2008 | 15:47
      Peter S.   Návštevník
      who, users
      v bash-i neviem presne ako by sa to robilo, ale podľa mňa by si mal mať vždy 2 zoznamy (aktuálny a predošlý) a tie porovnávať.
      Aj ked to by platilo pre systéme kde je viacej užívateľov, to znamená, že stále by išlo o viacčlenné zoznamy....
      • Re: zapis do suboru 11.12.2008 | 15:54
        Avatar boko SUSE11.1 64b  Používateľ
        Ja by som to robil troska inac, vyberal by som si zaznamy zo syslogu(resp messages) kto sa prihlasil uspesne a kto sa odhlasil a to by som zapisoval do suboru.