(Bash): naredba za generiranje slučajnog broja

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Oscar dijo

    Pa, testirao sam ga i vraća samo četveroznamenkasti broj, kako ga povećati?
    Vrlo zanimljiv savjet, hvala.

    1.    KZKG ^ Gaara dijo

      Vraća broj između 0 i 32768, nisam uspio dobiti veće brojeve.

  2.   Josue dijo

    i može li generirati exadecimals ????

  3.   gavran dijo

    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)

    1.    KZKG ^ Gaara dijo

      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? 🙂

  4.   Wuilmer bolivar dijo

    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".

  5.   crno oko dijo

    mmm…. Svidjelo mi se, imam mini skriptu koja je obojana kako bi generirala slučajne brojeve, hvala.

  6.   G. dijo

    Služi .. i puno ..
    pogotovo ako programirate sučelje na bashu s lozinkom, zaštitom, itd, itd, itd haha.
    Izvrsna proslava.

  7.   José Antonio slijedio je Benta dijo

    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.

  8.   Amiel dijo

    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