(Bash): команда для генерации случайного числа

Иногда мы программируем сценарий на Колотить …. и нам нужно (по какой-то причине) сгенерировать какое-то случайное число.

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

В терминале введите следующее и нажмите [Войти]:

echo $ RANDOM

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

Он показывает случайное число (любое) от 0 до 32768 (целое число, то есть без запятой).

Если вам нужно, чтобы это было случайное число, но от 0 до ... скажем, 100, вы можете установить для него этот предел 😀

echo $ (($ RANDOM% 100))

Точно так же другой пример ... если вы хотите, чтобы это было число от 0 до 29, это было бы:

echo $ (($ RANDOM% 29))

Разве это не понятно? 😀

Если они будут использовать его в скрипте bash, который они делают, чтобы присвоить сгенерированное значение (случайное число) переменной, это будет:

ПЕРЕМЕННАЯ = `echo $ (($ RANDOM))`

Ну вот и все, не знаю как вы ... но знаю, что в какой-то момент мне это пригодится, хахаха.

привет


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

9 комментариев, оставьте свой

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

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

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

  1.   Оскар сказал

    Ну, я тестировал его, и он возвращает только 4-значное число, как я могу его увеличить?
    Очень интересный совет, спасибо.

    1.    КЗКГ ^ Гаара сказал

      Возвращает число от 0 до 32768, мне не удалось получить большие числа.

  2.   Josue сказал

    и может ли он генерировать exadecimals ????

  3.   ворон сказал

    ПЕРЕМЕННАЯ = `echo $ (($ RANDOM))`

    Это работает, но не оптимально по той простой причине, что RANDOM является переменной, и вы можете:
    переменная = $ RANDOM
    вот и все! не запускайте echo в терминале aprte (что вы делаете)

    1.    КЗКГ ^ Гаара сказал

      Да, очевидно, этого можно добиться ... с той лишь разницей, что позже, чтобы увидеть число, которое взяла переменная (поскольку пользователь не является догадывающимся), необходимо будет выполнить эхо ... и, в конце концов, я просто выполняю эхо (чтобы пользователь мог видеть, какое число было взято) с самого начала.

      Я объясняю себя? 🙂

  4.   Вильмер Боливар сказал

    Другой способ сгенерировать случайное число, но на этот раз это будет такая команда:

    дата "+% N" | вырезать -c 9

    Это даст нам дату в наносекундах с 9 цифрами. Если нам нужна единственная цифра, вы указываете «cut -c 9» (последняя цифра всегда более случайна, потому что она наименьшая из числа). Если мы хотим 2 цифры, мы ставим «разрез - c 8,9». Если нам нужны три цифры, то «cut -c 7-9» (мы начинаем использовать дефис).

    Единственный недостаток в том, что мы хотим получить много случайных чисел подряд за короткое время, потому что это случайное число, основанное на дате и времени. То есть, если мы сделаем for с этой командой, мы увидим, что:

    $ для i в `seq 1 1 500`; сделать дату "+% N"; сделанный

    ...
    ...
    ...

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

    ...
    ...
    ...

    Думаю понятно, правда? Цифры слева, конечно, более похожи за короткий промежуток времени, а цифры справа более «случайны».

  5.   черный глаз сказал

    ммм…. Понравилось, у меня есть мини скрипт, который генерирует случайные числа, спасибо.

  6.   G. сказал

    Он служит .. и много ..
    особенно если вы программируете интерфейс в bash с паролем, безопасностью и т. д. и т. д., ха-ха.
    Отлично апроте.

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

    Эй.
    Прежде всего, конечно, поздравления с этим прекрасным сайтом, за которым я слежу уже давно.
    А во-вторых, сделайте небольшое примечание к этой записи:
    Когда ограничение делается так:

    echo $ (($ RANDOM% 10))

    На самом деле, то, что вы заказываете интерпретатору, заключается в том, что ваше сгенерированное число всегда является модулем% (остаток от деления) последующего числа, в этом примере 10.
    Любое число, деленное на 10, никогда не даст в качестве остатка нечто большее, чем сам делитель.
    Проблема в том, что он тоже не даст того же числа, потому что деление на 0 нелогично для интерпретатора.

    Это означает, что echo $ (($ RANDOM% 10) даст результаты от 0 до 9, но никогда не будет 10.
    Решение этого конфликта - добавить единицу к вашему пределу, чтобы это же число попало в случайный диапазон.

    echo $ (($ RANDOM% 11))

    Это даст результат от 0 до 10.

    Приветствие.