(Басх): Наредба за генерисање случајног броја

Понекад програмирамо неку скрипту на Басх … и треба нам (из неког разлога) да генеришемо неки случајни број.

За то можете програмирати целу апликацију (или функцију ...) да, али ... знатижељно је да је наш систем то већ урадио 😀

У терминал укуцајте следеће и притисните [Ентер]:

ецхо $ РАНДОМ

... појавиће се број, они ће поново урадити исто и појавити се други број, и тако даље 🙂

Оно што ради је да вам покаже случајни број (било који) између 0 и 32768 (цео број, односно без зареза).

Ако вам је потребан случајан број, али између 0 и ... рецимо 100, можете то ограничење ставити 😀

ецхо $ (($ РАНДОМ% 100))

Исто тако, још један пример ... ако желите да то буде број између 0 и 29, то би био:

ецхо $ (($ РАНДОМ% 29))

Да ли се разуме? 😀

Ако ће га користити у басх скрипти коју раде, за додељивање генерисане вредности (случајни број) променљивој било би:

ВАРИАБЛЕ = `ецхо $ (($ РАНДОМ))`

И добро, ово је све, не знам за вас ... али знам да ће ми то у неком тренутку бити корисно хахаха.

поздрави


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Оскар дијо

    Па, тестирао сам га и враћа само четвороцифрени број, како га повећати?
    Врло занимљив савет, хвала.

    1.    КЗКГ ^ Гаара дијо

      Приказује број између 0 и 32768, нисам успео да добијем веће бројеве.

  2.   Јосуе дијо

    и да ли може генерисати екадецималс ????

  3.   гавран дијо

    ВАРИАБЛЕ = `ецхо $ (($ РАНДОМ))`

    То делује, али није оптимално, из једноставног разлога што је РАНДОМ променљива и можете:
    променљива = $ РАНДОМ
    и то је то! немојте покретати ехо у терминалу апрте (што ви радите)

    1.    КЗКГ ^ Гаара дијо

      Да, очигледно се то може постићи овако ... једина разлика је у томе што би касније, да бисмо видели број који је променљива узела (пошто корисник није претпостављач), било потребно извршити ехо .... и на крају, оно што овде радим је једноставно да одзвањам (тако да корисник може да види који је број снимљен) од почетка.

      Да ли се разумем? 🙂

  4.   Вуилмер Боливар дијо

    Још један начин за генерисање случајног броја, мада овог пута ово би била наредба:

    датум „+% Н“ | цут -ц 9

    То би нам дало датум у наносекундама са 9 цифара. Ако желимо једну цифру, онда ставите „цут -ц 9“ (последња цифра је увек случајнија јер је најмања од броја). Ако желимо 2 цифре, стављамо „рез - ц 8,9“. Ако желимо три цифре, онда „исеците -ц 7-9“ (почињемо да користимо цртицу).

    Једина лоша ствар у вези с овим је ако желимо да у кратком времену добијемо много случајних бројева у низу, јер је ово случајни број заснован на датуму са својим временом. Односно, ако помоћу те наредбе направимо фор, можемо видети да:

    $ за и у `сек 1 1 500`; датум до „+% Н“; Готово

    ...
    ...
    ...

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

    ...
    ...
    ...

    Мислим да је јасно зар не? Фигуре на левој страни су сличније у кратком временском размаку, наравно, а оне на десној страни су „случајније“.

  5.   модро око дијо

    ммм…. Свидело ми се, имам мини скрипту која је насликана генеришући случајне бројеве, хвала.

  6.   G. дијо

    Служи .. и много ..
    посебно ако програмирате интерфејс у ​​басх-у са лозинком, заштитом итд, итд, итд, хаха.
    Одлична прилика.

  7.   Јосе Антонио је пратио Бента дијо

    Здраво.
    Пре свега, наравно, честитке на овој одличној веб страници, коју већ дуго пратим.
    И друго, направите малу белешку уз овај унос:
    Када се ограничавање врши овако:

    ецхо $ (($ РАНДОМ% 10))

    Заправо, оно што наручите тумачу је да је ваш генерисани број увек модул% (остатак дељења) следећег броја, у овом примеру 10.
    Било који број подељен са 10 никада неће дати као остатак нешто веће од самог делитеља.
    Проблем је што ни он неће дати исти број, јер дељење са 0 није логично за тумача.

    То значи да ће ецхо $ (($ РАНДОМ% 10) дати резултате између 0 и 9, али никада 10.
    Решење овог сукоба је додавање једног вашем ограничењу, тако да исти број спада у случајни опсег.

    ецхо $ (($ РАНДОМ% 11))

    Ово ће дати резултате између 0 и 10.

    Поздрав.

  8.   Аммиел дијо

    Здраво, управо сам правио нешто овако, али сам наишао на проблем.

    Желим да направим 6 различитих бројева од 00 до 45, али да их не понављам.

    ехо $(($РАНДОМ%46)) $(($РАНДОМ%46)) $(($РАНДОМ%46)) $(($РАНДОМ%46)) $(($РАНДОМ%46)) $(($ РАНДОМ%46))

    Нпр.: 17 33 16 36 45 27