(Bash): komanda generuoti atsitiktinį skaičių

Kartais mes programuojame scenarijų Bash …. ir mums reikia (dėl kokių nors priežasčių) sugeneruoti kokį nors atsitiktinį skaičių.

Tam galite užprogramuoti visą programą (arba funkciją ...) taip, bet ... įdomu, kad mūsų sistema tai jau padarė 😀

Terminale įveskite šiuos duomenis ir paspauskite [Įveskite]:

echo $ RANDOM

... atsiras skaičius, jie vėl daro tą patį ir pasirodo kitas skaičius ir t. t

Tai rodo jums atsitiktinį skaičių (bet kokį) nuo 0 iki 32768 (sveikasis skaičius, tai yra, be kablelio).

Jei jums reikia, kad tai būtų atsitiktinis skaičius, bet tarp 0 ir ... sakykime, kad 100, galite jam nustatyti šią ribą 😀

echo $ (($ RANDOM% 100))

Panašu, dar vienas pavyzdys ... jei norite, kad tai būtų skaičius nuo 0 iki 29, tai būtų:

echo $ (($ RANDOM% 29))

Ar tai suprantama ne? 😀

Jei jie naudos jį „bash“ scenarijuje, kurį jie daro, priskirti sukurtą vertę (atsitiktinį skaičių) kintamajam būtų:

KINTAMAS = "aidas $ (($ RANDOM))"

Na, štai, aš nežinau apie tave ... bet aš žinau, kad man jis kažkada bus naudingas hahaha.

saludos


10 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Oskaras sakė

    Na, aš jį išbandžiau ir jis pateikia tik 4 skaitmenų skaičių, kaip aš galiu jį padidinti?
    Labai įdomus patarimas, ačiū.

    1.    KZKG ^ Gaara sakė

      Pateikia skaičių nuo 0 iki 32768, man nepavyko gauti didesnių skaičių.

  2.   josue sakė

    ir ar tai gali generuoti egzadecimalus ????

  3.   varnas sakė

    KINTAMAS = "aidas $ (($ RANDOM))"

    Tai veikia, bet nėra optimalu dėl paprastos priežasties, kad RANDOM yra kintamasis ir jūs galite tai padaryti:
    kintamasis = $ RANDOM
    Štai ir viskas! nevykdykite aido terminalo aprte (ką jūs darote)

    1.    KZKG ^ Gaara sakė

      Taip, akivaizdu, kad tai galima pasiekti tokiu būdu ... vienintelis skirtumas yra tas, kad vėliau, norint pamatyti kintamojo skaičių (nes vartotojas nėra spėliotojas), reikės atlikti aidą…. ir galų gale, ką aš čia darau, tai tiesiog darau atgarsį (kad vartotojas pamatytų, koks skaičius yra paimtas) nuo pat pradžių.

      Ar priverčiu save suprasti? 🙂

  4.   Wuilmeris Bolivaras sakė

    Kitas būdas sukurti atsitiktinį skaičių, nors šį kartą tai būtų ši komanda:

    data "+% N" | pjūvis -c 9

    Tai suteiktų mums datą nanosekundėmis su 9 skaitmenimis. Jei mes norime vieno skaitmens, tada įdėkite „cut -c 9“ (paskutinis skaitmuo visada yra labiau atsitiktinis, nes jis yra mažiausias iš skaičiaus). Jei norime 2 figūrų, dedame „pjūvį - c 8,9“. Jei norime trijų skaičių, „iškirpkite -c 7-9“ (pradedame naudoti brūkšnį).

    Vienintelis blogas dalykas yra tai, jei per trumpą laiką norime gauti daug atsitiktinių skaičių iš eilės, nes tai yra atsitiktinis skaičius, pagrįstas data su jos laiku. Tai yra, jei mes padarysime už šią komandą, pamatysime, kad:

    $ už i „1 1 500 sekoje“; datos data "+% N"; padaryta

    ...
    ...
    ...

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

    ...
    ...
    ...

    Manau, aišku, tiesa? Kairėje esančios figūros, žinoma, yra panašesnės per trumpą laiką, o dešinėje - „atsitiktinės“.

  5.   juoda akis sakė

    mmm…. Man patiko, turiu mini scenarijų, jis yra nupieštas, kad generuotų atsitiktinius skaičius, ačiū.

  6.   G. sakė

    Jis tarnauja .. ir daug ..
    ypač jei programuojate sąsają „bash“ su slaptažodžiu, apsauga ir tt, ir tt, ir tt, haha.
    Puikus balandis.

  7.   José Antonio sekė Bentą sakė

    Hey.
    Pirmiausia, žinoma, sveikinu šią puikią svetainę, kurią jau seniai stebiu.
    Antra, padarykite nedidelę pastabą šiam įrašui:
    Kai ribojimas atliekamas taip:

    echo $ (($ RANDOM% 10))

    Tiesą sakant, tai, ką jūs užsakote vertėjui, yra tai, kad jūsų sugeneruotas skaičius visada yra sekančio skaičiaus, šiame pavyzdyje 10, modulis% (likusi padalijimo dalis).
    Bet koks skaičius, padalytas iš 10, niekada nesuteiks kažko didesnio už patį daliklį.
    Problema ta, kad jis taip pat nesuteiks to paties skaičiaus, nes vertėjui nėra logiška padalyti iš 0.

    Tai reiškia, kad echo $ (($ RANDOM% 10) duos rezultatus nuo 0 iki 9, bet niekada nebus 10.
    Šio konflikto sprendimas yra pridėti prie savo ribos, kad tas pats skaičius patektų į atsitiktinį diapazoną.

    echo $ (($ RANDOM% 11))

    Tai duos rezultatus nuo 0 iki 10.

    Pasisveikinimas.

  8.   amiel sakė

    Sveiki, ką tik kūriau kažką panašaus, bet susidūriau su problema.

    Noriu padaryti 6 skirtingus skaičius nuo 00 iki 45, bet jų nekartoti.

    echo $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ ATSITIKTINIAI %46))

    Pvz.: 17 33 16 36 45 27