(Bash): команда для генерації випадкового числа

Іноді ми програмуємо якийсь сценарій на Удар ... і нам потрібно (з якихось причин) сформувати якесь випадкове число.

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

У терміналі введіть наступне та натисніть [Введіть]:

echo $ RANDOM

... з'явиться число, вони знову роблять те саме, і з'являється інше число, і так далі 🙂

Він показує випадкове число (будь-яке) від 0 до 32768 (ціле число, тобто без коми).

Якщо вам потрібно, щоб це було випадкове число, але від 0 до ... скажімо 100, ви можете встановити це обмеження 😀

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.   Josue - сказав він

    і чи може це генерувати exadecimals ????

  3.   ворон - сказав він

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

    Це працює, але не є оптимальним, з тієї простої причини, що RANDOM є змінною, і ви можете зробити:
    змінна = $ СЛУЧАЙНА
    і це все! не запускати ехо в терміналі aprte (це те, що ви робите)

    1.    KZKG ^ Гаара - сказав він

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

      Чи даю я зрозуміти? 🙂

  4.   Вульмер Болівар - сказав він

    Ще один спосіб генерувати випадкове число, хоча цього разу це буде така команда:

    дата "+% N" | вирізати -c 9

    Це дасть нам дату в наносекундах з 9 цифр. Якщо ми хочемо одну цифру, тоді ви ставите "вирізати -c 9" (остання цифра завжди є більш випадковою, оскільки вона є найменшою з числа). Якщо ми хочемо 2 цифри, тоді ставимо "вирізати - c 8,9". Якщо ми хочемо три цифри, тоді "вирізаємо -c 7-9" (починаємо використовувати дефіс).

    Єдина погана річ у цьому, якщо ми хочемо отримати багато випадкових чисел поспіль за короткий час, оскільки це випадкове число на основі дати з часом. Тобто, якщо ми зробимо for за допомогою цієї команди, ми можемо побачити, що:

    $ за i у `сек. 1 1`; дата виконання "+% 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.

    Привітання.

  8.   аміель - сказав він

    Привіт, я щойно створював щось подібне, але зіткнувся з проблемою.

    Я хочу зробити 6 різних чисел від 00 до 45, але не повторювати їх.

    echo $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ ВИПАДКОВИЙ%46))

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