(Bash): Parancs véletlenszám előállításához

Néha beprogramozunk néhány szkriptet Bash …. és valamilyen okból generálnunk kell valami véletlen számot.

Ehhez beprogramozhat egy teljes alkalmazást (vagy funkciót ...) igen, de ... kíváncsian a rendszerünk már megtette ezt 😀

A terminálba írja be az alábbiakat, és nyomja meg a gombot [Belép]:

echo $ RANDOM

... megjelenik egy szám, megint ugyanazt csinálják, és megjelenik egy másik szám, és így tovább 🙂

Amit csinál, az egy véletlenszerű számot mutat (bármilyen) 0 és 32768 között (egész szám, vagyis vessző nélkül).

Ha szükséged van rá, hogy véletlenszerű szám legyen, de 0 és ... között mondjuk 100, akkor ezt a korlátot ráteheted 😀

echo $ (($ RANDOM% 100))

Ugyanez, egy másik példa ... ha azt szeretné, hogy ez 0 és 29 közötti szám legyen, az a következő lenne:

echo $ (($ RANDOM% 29))

Nem értik? 😀

Ha egy általuk használt bash szkriptben fogják használni, akkor a generált értéket (véletlenszerű szám) hozzárendelni egy változóhoz:

VÁLTOZÓ = "echo $ (($ RANDOM))"

Nos, ez az, nem tudok rólad ... de tudom, hogy valamikor hasznos lesz számomra hahaha.

Üdvözlet


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Oscar dijo

    Nos, teszteltem, és csak egy négyjegyű számot ad vissza, hogyan tudom nagyobbítani?
    Nagyon érdekes tipp, köszönöm.

    1.    KZKG ^ Gaara dijo

      0 és 32768 közötti számot ad vissza, nagyobb számokat nem sikerült megszereznem.

  2.   Józsué dijo

    és generálhat-e exadecimálisokat ????

  3.   holló dijo

    VÁLTOZÓ = "echo $ (($ RANDOM))"

    Ez működik, de nem optimális, abból az egyszerű okból, hogy a RANDOM változó, és megteheti:
    változó = $ RANDOM
    és ez az! ne futtasd az echo-t egy terminál aprte-ban (amit csinálsz)

    1.    KZKG ^ Gaara dijo

      Igen, nyilvánvalóan így érhető el ... az egyetlen különbség az, hogy később, a változó által vett szám megtekintéséhez (mivel a felhasználó nem tippelő), szükség lenne visszhangra. és végül, amit itt csinálok, egyszerűen a visszhangot (hogy a felhasználó láthassa, hogy milyen számot vesznek fel) a kezdetektől fogva.

      Megértetem magam? 🙂

  4.   Wuilmer bolivar dijo

    A véletlenszerű szám előállításának másik módja, bár ezúttal ez a parancs lenne:

    dátum "+% N" | vágás -c 9

    Ez megadná nekünk a dátumot nanoszekundumban, 9 számjeggyel. Ha egyetlen számjegyet akarunk, akkor tegye a "cut -c 9" -t (az utolsó számjegy mindig véletlenszerűbb, mert a szám közül a legkisebb). Ha 2 ábrát akarunk, akkor tegyük a "vágás - c 8,9" -t. Ha három számot akarunk, akkor "vágjuk -c 7-9" (elkezdjük használni a kötőjelet).

    Az egyetlen rossz dolog ebben az, ha rövid idő alatt sok véletlenszerű számot akarunk kapni egymás után, mert ez egy véletlenszerű szám, amely egy dátumon alapul. Vagyis ha ezzel a paranccsal csinálunk egy for-t, akkor láthatjuk, hogy:

    $ for i az "1 1 500 szekvenciában"; do date "+% N"; Kész

    ...
    ...
    ...

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

    ...
    ...
    ...

    Szerintem egyértelmű, igaz? A bal oldali ábrák természetesen rövid idő alatt jobban hasonlítanak egymásra, a jobboldaliak pedig inkább „véletlenszerűek”.

  5.   fekete szem dijo

    mmm…. Tetszett, van egy mini szkriptem, amelyet véletlenszerű számok generálására festenek, köszönöm.

  6.   G. dijo

    Ez szolgál .. és sok ..
    főleg, ha egy bash felületet programozol jelszóval, biztonsággal, stb, stb, stb, haha.
    Kiváló aprote.

  7.   José Antonio követte Bent dijo

    Hello.
    Mindenekelőtt természetesen gratulálok ehhez a kiváló weboldalhoz, amelyet már régóta követek.
    Másodszor, tegyen egy kis megjegyzést ehhez a bejegyzéshez:
    Ha a korlátozás így történik:

    echo $ (($ RANDOM% 10))

    Tulajdonképpen azt rendeli, hogy a tolmács az legyen, hogy a létrehozott szám mindig a következő szám modulus% -a (az osztás maradéka), ebben a példában 10.
    Bármely 10-gyel elosztott szám soha nem ad maradékként valami nagyobbat, mint maga az osztó.
    A probléma az, hogy ez sem adja meg ugyanazt a számot, mert a 0-val való felosztás nem logikus a tolmács számára.

    Ez azt jelenti, hogy az echo $ (($ RANDOM% 10) 0 és 9 között fog eredményt adni, de soha 10-et.
    Ennek a konfliktusnak a megoldása az, ha hozzáad egyet a korlátjához, így ugyanaz a szám a véletlenszerű tartományba esik.

    echo $ (($ RANDOM% 11))

    Ez 0 és 10 közötti eredményt ad.

    A köszöntés.

  8.   amiel dijo

    Sziasztok, épp valami ilyesmit készítettem, de egy problémába ütköztem.

    6 különböző számot szeretnék készíteni 00-tól 45-ig, de nem ismételni őket.

    echo $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ VÉLETLENSZERŰ%46))

    PL.: 17 33 16 36 45 27