(Bash): ukaz za generiranje naključne številke

Včasih programiramo kakšen skript Bash ... in moramo (iz nekega razloga) ustvariti naključno število.

Za to lahko programirate celotno aplikacijo (ali funkcijo ...) da, toda ... nenavadno je, da je to že storil naš sistem 😀

V terminal vnesite naslednje in pritisnite [vnesite]:

echo $ RANDOM

... prikaže se številka, spet naredijo isto in prikaže se druga številka itd. 🙂

Prikaže vam naključno število (poljubno) med 0 in 32768 (celo število, torej brez vejice).

Če potrebujete naključno število, vendar med 0 in ... recimo 100, lahko to omejitev postavite nanjo 😀

echo $ (($ RANDOM% 100))

Enako, še en primer ... če želite, da gre za število med 0 in 29, bi bilo:

echo $ (($ RANDOM% 29))

Ali ni razumljeno? 😀

Če jo bodo uporabili v skriptu bash, ki ga izvajajo, bi spremenljivki dodelili ustvarjeno vrednost (naključno število):

VARIABLE = `echo $ (($ RANDOM))`

In to je to, ne vem zate ... ampak vem, da mi bo v nekem trenutku koristilo hahaha.

pozdrav


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   Oscar je dejal

    No, preizkusil sem ga in vrne samo štirimestno številko, kako ga lahko povečam?
    Zelo zanimiv namig, hvala.

    1.    KZKG ^ Gaara je dejal

      Vrne številko med 0 in 32768, večjih številk nisem mogel dobiti.

  2.   Josue je dejal

    in ali lahko ustvarja eksadecimals ????

  3.   krokar je dejal

    VARIABLE = `echo $ (($ RANDOM))`

    To deluje, vendar ni optimalno, iz preprostega razloga, ker je RANDOM spremenljivka in lahko storite:
    spremenljivka = $ RANDOM
    in to je to! ne zaženite odmeva v terminalu aprte (kar počnete)

    1.    KZKG ^ Gaara je dejal

      Ja, očitno je to mogoče doseči tako ... edina razlika je v tem, da bi pozneje, da bi videli številko, ki jo je sprejela spremenljivka (ker uporabnik ni ugibalec), morali narediti odmev .... in na koncu tukaj preprosto naredim odmev (tako da lahko uporabnik vidi, katero številko je zajeto) od začetka.

      Se razumem? 🙂

  4.   Wuilmer bolivar je dejal

    Drug način za ustvarjanje naključnega števila, čeprav bi bil tokrat ta ukaz:

    datum "+% N" | cut -c 9

    To bi nam dalo datum v nanosekundah z 9 števkami. Če želimo enomestno številko, potem vstavite "cut -c 9" (zadnja številka je vedno bolj naključna, ker je najmanjša od števila). Če želimo dve številki, postavimo "rez - c 2". Če želimo tri številke, potem "izrežemo -c 8,9-7" (začnemo uporabljati vezaj).

    Edino slabo pri tem je, če želimo v kratkem času dobiti veliko naključnih števil zapored, ker je to naključno število, ki temelji na datumu s svojim časom. Se pravi, če s tem ukazom naredimo for, lahko vidimo, da:

    $ za i v `naslednjih 1 1 500`; datum do "+% N"; Končano

    ...
    ...
    ...

    308311367
    310807595
    313273093
    315725181
    318186139
    320671403
    323360117
    325733353
    328335462
    330694870
    333259893
    335858999
    338375622
    340798446

    ...
    ...
    ...

    Mislim, da je jasno, kajne? Številke na levi so si v kratkem času seveda bolj podobne, na desni pa bolj "naključne".

  5.   črno oko je dejal

    mmm…. Všeč mi je, imam mini skript, naslikan je tako, da ustvarja naključne številke, hvala.

  6.   G. je dejal

    Služi .. in veliko ..
    še posebej, če programiraš vmesnik v bash z geslom, zaščito itd, itd itd itd haha.
    Odlična priložnost.

  7.   José Antonio je sledil Bentu je dejal

    Hej.
    Najprej seveda čestitke na tej odlični spletni strani, ki jo spremljam že dolgo.
    In drugič, dodajte malo opombe k temu vnosu:
    Ko je omejitev narejena tako:

    echo $ (($ RANDOM% 10))

    Pravzaprav tisto, kar naročite tolmaču, je, da je vaše ustvarjeno število vedno modul% (preostanek delitve) naslednje številke, v tem primeru 10.
    Vsako število, deljeno z 10, nikoli ne bo dalo preostalega nekaj večjega od samega delitelja.
    Težava je v tem, da tudi ne bo dal iste številke, ker delitev z 0 za tolmača ni logična.

    To pomeni, da bo echo $ (($ RANDOM% 10) dal rezultate med 0 in 9, nikoli pa 10.
    Rešitev tega konflikta je, da ga dodate svoji meji, tako da enako število spada v naključni obseg.

    echo $ (($ RANDOM% 11))

    To bo dalo rezultate med 0 in 10.

    Pozdrav.

  8.   amiel je dejal

    Pozdravljeni, pravkar sem sestavljal nekaj takega, vendar sem naletel na težavo.

    Želim narediti 6 različnih številk od 00 do 45, vendar jih ne ponavljam.

    odmev $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ NAKLJUČNO %46))

    Npr.: 17 33 16 36 45 27