(Bash): Komanda për të gjeneruar një numër të rastit

Ndonjëherë, ne jemi duke programuar disa skenarë në Përplas .... dhe ne kemi nevojë (për ndonjë arsye) për të gjeneruar një numër të rastit.

Për këtë ju mund të programoni një aplikacion të tërë (ose funksion ...) po, por ... me interes, sistemi ynë tashmë e ka bërë atë that

Në një terminal, shtypni sa vijon dhe shtypni [Hyni]:

jehonë $ RANDOM

... do të shfaqet një numër, ata bëjnë përsëri të njëjtën gjë dhe shfaqet një numër tjetër, e kështu me radhë

Ajo që bën është t'ju tregojë një numër të rastësishëm (ndonjë) midis 0 dhe 32768 (numër i plotë, domethënë pa presje).

Nëse keni nevojë që të jetë një numër i rastësishëm, por midis 0 dhe ... le të themi 100, mund ta vendosni atë limit it

jehonë $ (($ RANDOM% 100))

I njëjti, një shembull tjetër ... nëse doni që të jetë një numër midis 0 dhe 29 do të ishte:

jehonë $ (($ RANDOM% 29))

A kuptohet jo? 😀

Nëse ata do ta përdorin atë në një skenar bash që po bëjnë, për të caktuar vlerën e gjeneruar (një numër të rastësishëm) për një ndryshore do të ishte:

VARIABLE = `jehonë $ (($ RANDOM))

Dhe mirë kjo është ajo, unë nuk di për ty ... por unë e di që do të jetë e dobishme për mua në një moment hahaha.

të fala


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Oscar dijo

    Epo, unë e kam testuar atë dhe ai kthen vetëm një numër 4-shifror, si ta bëjmë atë më të madh?
    Këshillë shumë interesante, faleminderit.

    1.    KZKG ^ Gaara dijo

      Kthen një numër midis 0 dhe 32768, nuk kam qenë në gjendje të marr numra më të mëdhenj.

  2.   Josue dijo

    dhe a mund të gjenerojë exadecimals ????

  3.   korb dijo

    VARIABLE = `jehonë $ (($ RANDOM))

    Kjo funksionon por nuk është optimale, për arsyen e thjeshtë se RANDOM është një variabël dhe ju mund të bëni:
    ndryshore = $ RANDOM
    dhe kjo eshte! mos lësho jehonë në një terminal aprte (që është ajo që po bën)

    1.    KZKG ^ Gaara dijo

      Po, padyshim që mund të arrihet kështu ... ndryshimi i vetëm është se më vonë, për të parë numrin që mori ndryshorja (pasi përdoruesi nuk është një hamendësues), do të ishte e nevojshme të bëhej një jehonë. dhe në fund, ajo që bëj këtu është thjesht të bëj jehonë (në mënyrë që përdoruesi të shohë se çfarë numri është marrë) që nga fillimi.

      A e kuptoj veten time? 🙂

  4.   Wuilmer bolivar dijo

    Një mënyrë tjetër për të gjeneruar një numër të rastësishëm, edhe pse këtë herë do të ishte kjo komandë:

    data "+% N" | prerë -c 9

    Kjo do të na jepte datën në nanosekonda me 9 shifra. Nëse duam një figurë të vetme, atëherë ju vendosni "cut -c 9" (figura e fundit është gjithmonë më e rastësishme, sepse është më e vogla e numrit). Nëse duam 2 figura, atëherë vendosim "prerja - c 8,9". Nëse duam tre figura atëherë "prerë -c 7-9" (fillojmë të përdorim vizën).

    E vetmja gjë e keqe në lidhje me këtë është nëse duam të marrim shumë numra të rastit me radhë brenda një kohe të shkurtër, sepse ky është një numër i rastësishëm bazuar në një datë me kohën e saj. Kjo do të thotë, nëse bëjmë një ndihmë me atë komandë mund të shohim se:

    $ për i në `seq 1 1 500`; bëj datën "+% N"; bërë

    ...
    ...
    ...

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

    ...
    ...
    ...

    Unë mendoj se është e qartë apo jo? Shifrat në të majtë janë më të ngjashme në një hapësirë ​​të shkurtër kohe, natyrisht, dhe ato në të djathtë janë më "të rastit".

  5.   sy i zi dijo

    mmm Më pëlqeu, kam një mini skenar që ka mbetur për të gjeneruar numra të rastësishëm, falënderime.

  6.   G. dijo

    Shërben .. dhe shumë ..
    sidomos nëse jeni duke programuar një ndërfaqe në bash me fjalëkalim, siguri, etj, etj, etj haha.
    Aprote e shkelqyer.

  7.   José Antonio Ndiqi Bent dijo

    Hey.
    Së pari, sigurisht, urime për këtë faqe të shkëlqyer, të cilën unë po e ndjek për një kohë të gjatë.
    Dhe së dyti, bëni një shënim të vogël për këtë hyrje:
    Kur një kufi bëhet si ky:

    jehonë $ (($ RANDOM% 10))

    Në të vërtetë, ajo që ju porosisni përkthyesin është se numri juaj i gjeneruar është gjithmonë moduli% (pjesa e mbetur e pjesëtimit) të numrit pasues, në këtë shembull, 10.
    Çdo numër i ndarë me 10 nuk do t'i japë kurrë një mbetje diçka më të madhe se vetë pjesëtuesi.
    Problemi është që ai nuk do të japë të njëjtin numër, sepse një ndarje me 0 nuk është logjike për përkthyesin.

    Kjo do të thotë që jehona $ (($ RANDOM% 10) do të japë rezultate midis 0 dhe 9, por kurrë 10.
    Zgjidhja e këtij konflikti është të shtoni një në kufirin tuaj, në mënyrë që i njëjti numër të bie brenda intervalit të rastësishëm.

    jehonë $ (($ RANDOM% 11))

    Kjo do të japë rezultate midis 0 dhe 10.

    Një përshëndetje.

  8.   amiel dijo

    Përshëndetje, sapo po ndërtoja diçka të tillë, por hasa në një problem.

    Dua të bëj 6 numra të ndryshëm nga 00 deri në 45 por të mos i përsëris.

    jehonë $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ RASTËSISHME% 46))

    SH.SH.: 17 33 16 36 45 27