Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: kingpin 08 Července 2009, 08:54:39

Název: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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. 
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: premet 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í :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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...
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: mka 08 Července 2009, 09:39:21
OT: Od kdy zadávají šéfové svým zaměstnancům školní úlohy? :-)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: premet 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/ (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ě  :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: premet 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.
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: mka 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 :-)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 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
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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??
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 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
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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?
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 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 ..`
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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 :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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.
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 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`
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 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
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Pavel Půlpán 09 Července 2009, 15:30:14
Zajímavé... taky bych chtěl dělat v pozici Application support administrator. 8)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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 :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Pavel Půlpán 09 Července 2009, 15:39:39
Moje aplikacie bezia na $MS strojoch.

Voni na Windows dokonce běžej aplikace? 8)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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  ;)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 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 :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 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)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: kingpin 09 Července 2009, 15:52:39
-- nejdem ti nic rikat pretoze by "panovi" mohla puknut zilka v hlave.
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: LuciusMare 09 Července 2009, 15:56:55
to vas nikoho nenapadlo neco s cat /dev/urandom ? :?D
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Pavel Půlpán 09 Července 2009, 16:00:50
Nebo třeba s dd if=/dev/urandom of=/dev/$da?! 8)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 09 Července 2009, 16:00:54
to vas nikoho nenapadlo neco s cat /dev/urandom ? :?D
.. hehe. koukam ze se taky neobtezujes ctenim threadu jako ja :D

byla to ma prvni odpoved a jeste cele reseni na jedne lajne

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

Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: LuciusMare 09 Července 2009, 16:38:19
Bat: Jo aha,tak ne :)
 Pfuj,to je na mne moc intelektuální,to číst neci! :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 09 Července 2009, 17:12:07
Bat: Jo aha,tak ne :)
 Pfuj,to je na mne moc intelektuální,to číst neci! :)
yes! BBM votes for LM :D

put away all of that intellectual bullshit !!
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Petr Merlin Vaněček 09 Července 2009, 17:26:17
Pavel Půlpán: a nejsi ty trochu zákeřněj? :D
Bad Batz Maru: nech to plavat, jednou na to taky dojde :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Pavel Půlpán 09 Července 2009, 19:42:44
Pavel Půlpán: a nejsi ty trochu zákeřněj? :D

... když to někdo použije a nezjistí si, co to vlastně dělá, je to vemeno z kapra... nikoliv já zákeřnej! ;D
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Petr Merlin Vaněček 09 Července 2009, 20:00:02
... když to někdo použije a nezjistí si, co to vlastně dělá, je to vemeno z kapra... nikoliv já zákeřnej! ;D

taky výuka :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 09 Července 2009, 22:16:04
/dev/urandom je dost pomale a vytezuje cpu, pro tyto ucely lze doporucit jedine /dev/zero
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: Petr Merlin Vaněček 09 Července 2009, 23:09:25
/dev/urandom je dost pomale a vytezuje cpu, pro tyto ucely lze doporucit jedine /dev/zero

Pochopitelne myslíš pro účely dd of=/dev/$da ... :)
Název: Re: BASH - existuje nejaka funkce RANDOM?
Přispěvatel: nettezzaumana 10 Července 2009, 09:41:47
/dev/urandom je dost pomale a vytezuje cpu, pro tyto ucely lze doporucit jedine /dev/zero

Pochopitelne myslíš pro účely dd of=/dev/$da ... :)
jiste
Název: Re:BASH - existuje nejaka funkce RANDOM?
Přispěvatel: OJ9Lnika 14 Července 2013, 10:50:57
Nejvtipnější vlákno na Ubuntu. Je navíc otázka času, než si ho přečte jeho šéf :-)
Název: Re:BASH - existuje nejaka funkce RANDOM?
Přispěvatel: MacHala 15 Července 2013, 19:28:46
Nejvtipnější vlákno na Ubuntu. Je navíc otázka času, než si ho přečte jeho šéf :-)
(http://img.photobucket.com/albums/v349/UnduTheGun/ThreadNecromancer.png)