Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: BASH - existuje nejaka funkce RANDOM?  (Přečteno 9859 krát)

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
BASH - existuje nejaka funkce RANDOM?
« kdy: 08 Července 2009, 08:54:39 »
ahojte  :)
Dnes rano mi prisla nova uloha od mojho sefa:

Urobte script gen_files.sh, ktory vam bude generovat nahodne nejake subory v adresary test_files kazdu minutu. Ten vytvorite v home-ovskom adresary uzivatela debian.
Subory mozu byt v tvare napr.  file1_{datum}.out, file2_{datum}.out ….
S tym, ze v tom adresary nesmie byt viac ako 10 suborov naraz.   !!!!!   PODMIENKA
Obsah suborov moze byt hociaky… ale nikdy nie ten isty , to aby sa lisila velkost suborov – nieco vymyslite ako nahodne nieco vkladat do suborov.
Nech je tak napisany, ze si ho spustite ako process na pozadi:   ./gen_files.sh &


Takze co by som mohol vediet a co asi nie:
umim:
- zistit ci taky adresar existuje a ak nie tak ho vytvori
- vytvarat subory v tvare file1_{datum}.out
- asi umim zabezpecit aby nebolo v adresari viac ako 10 suborov

Neumim a potrebujem naviest tym spravnym smerom. Aspon na nejake tie manualy:
- nahodne generovanie (nejaka funkcia random???)
- spustanie na pozadi

A este co myslite, mam do tych suborov zapisovat text alebo cisla? Co bude jednoduchsie?
Postupne tu budem davat kusocky mojho kodu :) a dufam ze mi trosicku pomozete. 

premet

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #1 kdy: 08 Července 2009, 09:03:32 »
Tak sepiš co máš a my ti když tak pomůžem  :)
Neumim a potrebujem naviest tym spravnym smerom. Aspon na nejake tie manualy:
- nahodne generovanie (nejaka funkcia random???)
- spustanie na pozadi

A este co myslite, mam do tych suborov zapisovat text alebo cisla? Co bude jednoduchsie?
Postupne tu budem davat kusocky mojho kodu :) a dufam ze mi trosicku pomozete. 
Spuštění na pozadí je to co už jsi psal ./gen_files.sh &, protože & ti spustí proces na pozadí
Náhodný generování je v Bashi jen proměnná $RANDOM, která generuje i velká čísla, proto můžeš využít třeba dělení se zbytkem deseti a podle toho ti to bude vytvářet 0 až 9 souborů  :)
Kód: [Vybrat]
let rand=$RANDOM%10 a to dáš do cyklu, kterej ti podle počtu bude vytvářet soubory

A do těch souborů bych třeba vkládal výpis nějakýho příkazu, který se často mění :)
« Poslední změna: 08 Července 2009, 09:07:19 od Premet »

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #2 kdy: 08 Července 2009, 09:36:57 »
s tym & som si myslel ze sef spravil preklep :D
Teraz ma napadlo ze to asi nebudem riesit cez crontab kedze ma bezat na pozadi?

Citace
Náhodný generování je v Bashi jen proměnná $RANDOM, která generuje i velká čísla, proto můžeš využít třeba dělení se zbytkem deseti a podle toho ti to bude vytvářet 0 až 9 souborů
ja som zase uvazoval o pouziti sekvencie nieco ako:

Kód: [Vybrat]
for nazov in file$(seq 1 10)_$(date %d%m%y)
do
    echo "Vytvaram subory" $nazov
done
Akurat to este treba hodit nejak do TOUCH nech ich vytvori a nie len vypise
a tu funkciu random by som pouzil pre vkladanie obsahu do suboru. Alebo myslis ze je to zly napad? neviem ktorou cestou sa dat...

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #3 kdy: 08 Července 2009, 09:39:21 »
OT: Od kdy zadávají šéfové svým zaměstnancům školní úlohy? :-)

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #4 kdy: 08 Července 2009, 09:42:22 »
OT: Od kdy zadávají šéfové svým zaměstnancům školní úlohy? :-)

Este som na zacviku a tak mi dava take skolni ulohy aby som sa naucil aspon zakladom skriptovania v BASHi.

//Premet na tvojom mieste by som sa nebal :) mat tvoju linuxacku hlavu delam sefa :D
urcitre sa na tu knihu pozriem niekde v shope. A skriptovanie beriem naozaj vazne a moc sa mi to paci :) v kanclu je nas 9 a ja som jediny ktory nieco ako tak vie naskriptovat
« Poslední změna: 09 Července 2009, 15:43:14 od kingpin »

premet

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #5 kdy: 08 Července 2009, 09:44:06 »
OT: Od kdy zadávají šéfové svým zaměstnancům školní úlohy? :-)

Este som na zacviku a tak mi dava take skolni ulohy aby som sa naucil aspon zakladom skriptovania v BASHi.
Neuveris ked ti poviem ze som na pozicii Application support administrator :D
Hehe a to já se strachuju, že pak neseženu práci  ;D

Este som na zacviku a tak mi dava take skolni ulohy aby som sa naucil aspon zakladom skriptovania v BASHi.
http://tldp.org/LDP/abs/html/
Na výuku je dobrá i kniha Mistrovství v Linuxu, pokud to s tímhle myslíš vážně tak si myslím, že se vyplatí do ní investovat. Jsou tam hlavně věci okolo programování v Bashi, sed, awk a podobně  :)
« Poslední změna: 08 Července 2009, 09:46:14 od Premet »

premet

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #6 kdy: 08 Července 2009, 09:57:54 »
ja som zase uvazoval o pouziti sekvencie nieco ako:

Kód: [Vybrat]
for nazov in file$(seq 1 10)_$(date %d%m%y)
do
    echo "Vytvaram subory" $nazov
done


Kód: [Vybrat]
i=0

while [ $i -lt 10 ]; do
      touch "file$i$-(date)"
      i=$(($i + 1))
done

Já jsem myslel, že těch souborů má být náhodně 0 až 9 a né vždy přesně 9 třeba, proto jsem tam psal s tím random.

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #7 kdy: 08 Července 2009, 10:12:23 »
jo promin, tak som zle cital, a sef to taky napisal dost blbo. Podla toho ako to napisal je teda v podstate jedno ako sa bude subor volat (to file1_ ... file2... bol len priklad nazvu), hlavne nech ma pri sebe {date %d%m%y}. Asi som si len hladal tu najjednoduchsiu cestu ktoru by som ako tak vedel naskriptovat.
A s tym random by to teda mohlo vyzerat ako? + treba mi tam vymysliet podmienku ak je adresar plny tak vsetky subory zmaz a napln novymi

//Teraz som pisal sefovi jestli to ma byt prave 10 suborov alebo nahodny pocet. Tak az odpise dam vediet
« Poslední změna: 08 Července 2009, 10:19:41 od kingpin »

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #8 kdy: 08 Července 2009, 10:22:47 »
Este som na zacviku...

Hehe, tak to je jiná :-)
Držím palce!
A doufám, že ti šéf nemonitoruje síťovou komunikaci :-)

nettezzaumana

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #9 kdy: 08 Července 2009, 10:31:42 »
ad.1) sefovi by se libilo, kdyby vedel ze tuhle primitivni ulohu za tebe resi nekdo jinej?
ad.2) a tobe je to k cemu, kdyz to mas umet sam ??

man bash

schvalne jsem se podival na vysledek dotazu do guglu `bash create random files` a obavam se, ze na novem miste opravdu dlouho nevydrzis ..

neni totiz ostuda, ze neco nevis (kazdej neco nevi), ale je ostuda, ze i jednoduche a na internetu dostupne veci si neumis vyresit sam ..

Vyzyvam ostatni :: v zajmu hocha a jeho prace ignorujte prosim jeho otazky
« Poslední změna: 08 Července 2009, 10:36:29 od Bad Batz Maru »

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #10 kdy: 08 Července 2009, 10:54:03 »
re ad.1 - jo sefovi by sa to pacilo ze o tom diskutujem aj niekde inde pretoze u nas je politika taka ze ak nevies tak diskutuj. V kancli totiz nemam s kym diskutovat takze hladam inde.
re ad.2 - mne je to k tomu ze ak neviem sam tak mi niekto poradi. Mozno si myslis, jo nekdo mu to napise a on to jenom odovzda a serie na to... ale mylis sa. Aj keby som to nemal tak sa nic nedeje. Ide hlavne o to aby som sa niecomu naucil v kratkom casovom useku. A mne ide hlavne o to pochopit ako ten skript funguje a mat pocit ze aspon malou mierou som sa na tom podielal.

A pokial by som chcel veci z googlu tak tu teraz niesom. Ja mam totiz chut sa to naucit a nie copy-paste.
Jo najlepsie je hodit niekoho do oceanu a nechat ho plavat aj ked mu nepovies ktorym smerom je breh... Snad jednou utone ze??

nettezzaumana

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #11 kdy: 08 Července 2009, 11:13:40 »
Citace
while sleep 60; do dd if=/dev/urandom of=/tmp/rand/file-`date +%s`.out bs=64 count=$RANDOM &  rm `ls -1 /tmp/rand | sort -R | sed '1,10d'`; done
« Poslední změna: 08 Července 2009, 11:17:37 od Bad Batz Maru »

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #12 kdy: 08 Července 2009, 11:31:02 »
velmi pekne ti dakujem  :)
Chapem tomu ale neviem preco je tam ten blocksize... mohol by si mi to blizsie vysvetlit?

nettezzaumana

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #13 kdy: 08 Července 2009, 11:32:19 »
protoze defaultni blocksize je afaik 512, z cehoz vypliva, ze by se soubory delaly zbytecne velke (8-16MB) a ja kdyz jsem to testoval jsem mel `while sleep 1 ..`

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #14 kdy: 08 Července 2009, 14:20:21 »
takze dnes ten skriptik nedopisem lebo sefa nemam v praci a na mail, v ktorom su moje otazky ako si ten skript presne predstavuje, mi neodpisuje  >:(
Az mi zajtra odpise tak to dam dokopy a vlozim tu :)

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #15 kdy: 09 Července 2009, 10:13:42 »
Ahojte tak som sa este trosku potrapil a bolo mi povedane nech to vytvara jeden novy subor kazdu minutu. Avsak potrebujem este poradit preco mi to meni len obsah suboru a nevytvara aj nove subory s inymi nazvami?? Ved predsa funkcia RANDOM mi to mala zabezpecit ci nie?


Kód: [Vybrat]
#!/bin/bash

##test existencie adresara kam sa budu ukladat files##

if ! [ -d $HOME/test_files ]
  then
        echo "Adresar ~/test_files neexistuje a bude vytvoreny!"
        mkdir $HOME/test_files
  else
        echo "Adresar existuje a bude pouzity!"
fi

##kontrola ci je adresar naplneny 10 subormi##
##Vytvaranie random nazvu suborov a ich naplnanie random obsahom##

if [ $(ls -U $HOME/test_files | wc -l) -eq 10 ]
  then
        rm `ls -ltr $HOME/test_files | sort - r | sed '1,10d'`
  else
        while sleep 60
                do
        echo $RANDOM > $HOME/test_files/file$RANDOM-$(date +%d%m%y).out
        bs=64k
                done
fi
« Poslední změna: 09 Července 2009, 12:58:36 od kingpin »

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #16 kdy: 09 Července 2009, 15:11:07 »
Vdaka za pomoc. Spytal som sa na to niekde inde, boli ochotnejsi no :) a nakoniec som dal dokopy ten moj skriptik a celkom dobre to funguje.

nettezzaumana

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #17 kdy: 09 Července 2009, 15:23:01 »
Vdaka za pomoc. Spytal som sa na to niekde inde, boli ochotnejsi no :) a nakoniec som dal dokopy ten moj skriptik a celkom dobre to funguje.
vis co. jdi do pr%#*e ;)

ad.1) tvuj skriptik je pekna prasarna ze ktere je patrne pouze jedine .. RTFM :: `man bash`

nettezzaumana

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #18 kdy: 09 Července 2009, 15:27:30 »
Kód: [Vybrat]
[ -d /tmp ] && echo exists || echo doesnt exist
je to same jako

Kód: [Vybrat]
if test -d /tmp; then
    echo exists; else
    echo doesnt exist
fi

Pavel Půlpán

Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #19 kdy: 09 Července 2009, 15:30:14 »
Zajímavé... taky bych chtěl dělat v pozici Application support administrator. 8)

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #20 kdy: 09 Července 2009, 15:38:12 »
Zajímavé... taky bych chtěl dělat v pozici Application support administrator. 8)
Tato pozicia neznamena ze pracujem ako linuxak :D Moje aplikacie bezia na $MS strojoch. Linux beriem z dlhej chvile ked sa nic s mojimi aplikaciami nedeje teda nehlasia chyby.
Jo a skript je docela hoodne prekopany :)

Pavel Půlpán

Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #21 kdy: 09 Července 2009, 15:39:39 »
Moje aplikacie bezia na $MS strojoch.

Voni na Windows dokonce běžej aplikace? 8)

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #22 kdy: 09 Července 2009, 15:40:04 »
Kód: [Vybrat]
[ -d /tmp ] && echo exists || echo doesnt exist
je to same jako

Kód: [Vybrat]
if test -d /tmp; then
    echo exists; else
    echo doesnt exist
fi

100 ludi 100 chuti  ;)

kingpin

  • Návštěvník
  • *
  • Příspěvků: 44
    • Zobrazit profil
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #23 kdy: 09 Července 2009, 15:41:31 »
Moje aplikacie bezia na $MS strojoch.

Voni na Windows dokonce běžej aplikace? 8)
neeee. To mam len na hry :D pretoze pod linuxom ich nerozbehnem :)

nettezzaumana

  • Host
Re: BASH - existuje nejaka funkce RANDOM?
« Odpověď #24 kdy: 09 Července 2009, 15:44:24 »
Zajímavé... taky bych chtěl dělat v pozici Application support administrator. 8)
.. hehe. zajimalo by me co ten badly-mannered hoch dela kdyz se uci skriptovat elementarni veci ptani se po forech misto aby to vyresil sam .. ja osobne mu sanci nedavam ;)

nehlede k tomu ze se vsadim, ze jen idiot vezme na takovouhle pozici nekoho takoveho .. obavam se, ze tu resime chlapci spis domaci ukoly v prvnim semestru (ted jsem ho asi precenil)
« Poslední změna: 09 Července 2009, 15:47:11 od Bad Batz Maru »

 


Provoz zaštiťuje spolek OpenAlt.