(Bash): Команда за генериране на произволно число

Понякога програмираме някакъв скрипт на Тряскам ... и трябва (по някаква причина) да генерираме произволно число.

За това можете да програмирате цяло приложение (или функция ...) да, но ... любопитно е, че нашата система вече е направила това 😀

В терминал въведете следното и натиснете [Въведете]:

ехо $ СЛУЧАЙНО

... ще се появи число, те отново правят същото и се появява друго число и така нататък 🙂

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

Ако трябва да е произволно число, но между 0 и ... да кажем 100, можете да поставите това ограничение it

echo $ (($ RANDOM% 100))

Същото, друг пример ... ако искате да е число между 0 и 29, би било:

echo $ (($ RANDOM% 29))

Не се ли разбира? 😀

Ако те ще го използват в bash скрипт, който правят, за да присвоят генерираната стойност (произволно число) на променлива, би било:

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

Ами това е, не знам за вас ... но знам, че ще ми бъде полезно в даден момент хахаха.

поздрави


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

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   "Оскар" каза той

    Е, тествах го и той връща само 4-цифрено число, как да го направя по-голям?
    Много интересен съвет, благодаря.

    1.    KZKG ^ Гаара каза той

      Връща число между 0 и 32768, не успях да получа по-големи числа.

  2.   Хосе каза той

    и може ли да генерира exadecimals ????

  3.   гарван каза той

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

    Това работи, но не е оптимално, поради простата причина, че RANDOM е променлива и можете да направите:
    променлива = $ СЛУЧАЙНА
    и това е! не пускайте ехо в aprte терминал (което правите)

    1.    KZKG ^ Гаара каза той

      Да, очевидно може да се постигне така ... единствената разлика е, че по-късно, за да видите числото, което променливата е взела (тъй като потребителят не е познаващ), ще е необходимо да направите ехо .... и в крайна сметка това, което правя тук, е просто да направя ехото (така че потребителят да види кой номер е взет) от самото начало.

      Давам ли да се разбера? 🙂

  4.   Wuilmer bolivar каза той

    Друг начин за генериране на произволно число, въпреки че този път това ще бъде тази команда:

    дата "+% N" | изрежете -c 9

    Това ще ни даде датата в наносекунди с 9 цифри. Ако искаме една цифра, тогава поставяте "cut -c 9" (последната цифра винаги е по-случайна, защото е най-малката от числото). Ако искаме 2 цифри, тогава поставяме "cut - c 8,9". Ако искаме три цифри, тогава "изрежете -c 7-9" (започваме да използваме тирето).

    Единственото лошо нещо за това е, ако искаме да получим много случайни числа подред за кратко време, защото това е произволно число, основано на дата с времето си. Тоест, ако направим for с тази команда, можем да видим, че:

    $ за i в `sq 1 1 500`; дата на "+% N"; Свършен

    ...
    ...
    ...

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

    ...
    ...
    ...

    Мисля, че е ясно нали? Фигурите отляво са по-сходни за кратко време, разбира се, а тези отдясно са по-„случайни“.

  5.   черно око каза той

    mmm…. Хареса ми, имам мини скрипт, който остава да генерира произволни числа, благодаря.

  6.   G. каза той

    Служи .. и много ..
    особено ако програмирате интерфейс в bash с парола, сигурност и т.н., и т.н., и т.н. хаха.
    Отличен апротет.

  7.   Хосе Антонио последва Бент каза той

    Здравейте.
    На първо място, разбира се, поздравления за този отличен уебсайт, който следя от дълго време.
    И второ, направете малка бележка към този запис:
    Когато ограничението се прави по следния начин:

    echo $ (($ RANDOM% 10))

    Всъщност това, което поръчвате на интерпретатора, е, че генерираното ви число винаги е модулът% (остатък от делението) на следващия номер, в този пример 10.
    Всяко число, разделено на 10, никога няма да даде на остатъка нещо по-голямо от самия делител.
    Проблемът е, че и той няма да даде същия номер, защото разделението на 0 не е логично за интерпретатора.

    Това означава, че echo $ (($ RANDOM% 10) ще даде резултати между 0 и 9, но никога 10.
    Решението на този конфликт е да добавите такъв към лимита си, така че същият брой да попадне в произволния диапазон.

    echo $ (($ RANDOM% 11))

    Това ще даде резултати между 0 и 10.

    За поздрав.

  8.   амиел каза той

    Здравейте, тъкмо изграждах нещо подобно, но се сблъсках с проблем.

    Искам да направя 6 различни числа от 00 до 45, но да не ги повтарям.

    ехо $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ СЛУЧАЙНА%46))

    НАПР.: 17 33 16 36 45 27