Ponekad programiramo neku skriptu na Tresnuti ... i trebamo (iz nekog razloga) generirati neki slučajni broj.
Za to možete programirati cijelu aplikaciju (ili funkciju ...) da, ali ... znatiželjno, naš je sustav to već učinio 😀
U terminal unesite sljedeće i pritisnite [Unesi]:
odjek $ SLUČAJNO
... pojavit će se broj, opet čine istu stvar i pojavljuje se drugi broj, i tako dalje 🙂
Ono što radi je da vam pokaže slučajni broj (bilo koji) između 0 i 32768 (cijeli broj, odnosno bez zareza).
Ako vam je potreban slučajan broj, ali između 0 i ... recimo 100, možete na njega staviti to ograničenje 😀
echo $ (($ RANDOM% 100))
Isti, još jedan primjer ... ako želite da to bude broj između 0 i 29 to bi bilo:
echo $ (($ RANDOM% 29))
Nije li razumljivo? 😀
Ako će ga koristiti u bash skripti koju rade, dodijeliti generiranu vrijednost (slučajni broj) varijabli bilo bi:
PROMJENLJIVO = `echo $ (($ RANDOM))`
I dobro to je to, ne znam za vas ... ali znam da će mi to kad-tad biti korisno hahaha.
pozdravi
Pa, testirao sam ga i vraća samo četveroznamenkasti broj, kako ga povećati?
Vrlo zanimljiv savjet, hvala.
Vraća broj između 0 i 32768, nisam uspio dobiti veće brojeve.
i može li generirati exadecimals ????
PROMJENLJIVO = `echo $ (($ RANDOM))`
To djeluje, ali nije optimalno, iz jednostavnog razloga što je RANDOM varijabla i možete učiniti:
varijabla = $ RANDOM
i to je to! nemojte pokretati odjek u terminalu aprte (što vi radite)
Da, očito se to može postići ovako ... jedina je razlika u tome što bi kasnije, da bi se vidio broj koji je varijabla uzela (budući da korisnik nije pogađač), bilo potrebno napraviti odjek ... i na kraju, ono što ovdje radim je jednostavno odzvanjanje (tako da korisnik može vidjeti koji je broj zauzet) od početka.
Dajem li razumijevanja? 🙂
Još jedan način generiranja slučajnog broja, iako bi ovaj put to bila sljedeća naredba:
datum "+% N" | izrezati -c 9
To bi nam dalo datum u nanosekundama s 9 znamenki. Ako želimo jednu brojku, tada stavite "cut -c 9" (zadnja je brojka uvijek slučajnija jer je najmanja od broja). Ako želimo 2 brojke, tada stavljamo "rez - c 8,9". Ako želimo tri brojke, onda "izrežemo -c 7-9" (počinjemo koristiti crticu).
Jedina loša stvar u ovome je ako želimo dobiti puno slučajnih brojeva u nizu u kratkom vremenu, jer je to slučajni broj koji se temelji na datumu sa svojim vremenom. Odnosno, ako pomoću naredbe napravimo for, možemo vidjeti da:
$ za i u `seq 1 1 500`; datum do "+% N"; gotovo
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Mislim da je to jasno zar ne? Brojke na lijevoj strani slične su, naravno, u kratkom vremenskom razmaku, a one s desne su više "slučajne".
mmm…. Svidjelo mi se, imam mini skriptu koja je obojana kako bi generirala slučajne brojeve, hvala.
Služi .. i puno ..
pogotovo ako programirate sučelje na bashu s lozinkom, zaštitom, itd, itd, itd haha.
Izvrsna proslava.
Pozdrav.
Prije svega, naravno, čestitke na ovoj izvrsnoj web stranici koju pratim već dugo.
I drugo, dodajte malu bilješku uz ovaj unos:
Kada se ograničavanje vrši ovako:
echo $ (($ RANDOM% 10))
Zapravo, ono što naručite tumaču je da je vaš generirani broj uvijek modul% (ostatak podjele) sljedećeg broja, u ovom primjeru 10.
Bilo koji broj podijeljen s 10 nikada neće dati kao ostatak nešto veće od samog djelitelja.
Problem je što ni on neće dati isti broj, jer podjela s 0 nije logična za tumača.
To znači da će echo $ (($ RANDOM% 10) dati rezultate između 0 i 9, ali nikada 10.
Rješenje ovog sukoba je dodavanje jednog vašem ograničenju, tako da isti broj spada u slučajni raspon.
echo $ (($ RANDOM% 11))
To će dati rezultate između 0 i 10.
Pozdrav.
Pozdrav, upravo sam gradio ovako nešto, ali sam naišao na problem.
Želim napraviti 6 različitih brojeva od 00 do 45, ali ih ne ponavljati.
jeka $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ RANDOM%46))
PR.: 17 33 16 36 45 27