Иногда мы программируем сценарий на Колотить …. и нам нужно (по какой-то причине) сгенерировать какое-то случайное число.
Для этого вы можете запрограммировать целое приложение (или функцию ...) да, но ... любопытно, что наша система уже сделала это 😀
В терминале введите следующее и нажмите [Войти]:
echo $ RANDOM
... появится число, они снова сделают то же самое, появится другое число и так далее 🙂
Он показывает случайное число (любое) от 0 до 32768 (целое число, то есть без запятой).
Если вам нужно, чтобы это было случайное число, но от 0 до ... скажем, 100, вы можете установить для него этот предел 😀
echo $ (($ RANDOM% 100))
Точно так же другой пример ... если вы хотите, чтобы это было число от 0 до 29, это было бы:
echo $ (($ RANDOM% 29))
Разве это не понятно? 😀
Если они будут использовать его в скрипте bash, который они делают, чтобы присвоить сгенерированное значение (случайное число) переменной, это будет:
ПЕРЕМЕННАЯ = `echo $ (($ RANDOM))`
Ну вот и все, не знаю как вы ... но знаю, что в какой-то момент мне это пригодится, хахаха.
привет
Ну, я тестировал его, и он возвращает только 4-значное число, как я могу его увеличить?
Очень интересный совет, спасибо.
Возвращает число от 0 до 32768, мне не удалось получить большие числа.
и может ли он генерировать exadecimals ????
ПЕРЕМЕННАЯ = `echo $ (($ RANDOM))`
Это работает, но не оптимально по той простой причине, что RANDOM является переменной, и вы можете:
переменная = $ RANDOM
вот и все! не запускайте echo в терминале aprte (что вы делаете)
Да, очевидно, этого можно добиться ... с той лишь разницей, что позже, чтобы увидеть число, которое взяла переменная (поскольку пользователь не является догадывающимся), необходимо будет выполнить эхо ... и, в конце концов, я просто выполняю эхо (чтобы пользователь мог видеть, какое число было взято) с самого начала.
Я объясняю себя? 🙂
Другой способ сгенерировать случайное число, но на этот раз это будет такая команда:
дата "+% 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
...
...
...
Думаю понятно, правда? Цифры слева, конечно, более похожи за короткий промежуток времени, а цифры справа более «случайны».
ммм…. Понравилось, у меня есть мини скрипт, который генерирует случайные числа, спасибо.
Он служит .. и много ..
особенно если вы программируете интерфейс в bash с паролем, безопасностью и т. д. и т. д., ха-ха.
Отлично апроте.
Эй.
Прежде всего, конечно, поздравления с этим прекрасным сайтом, за которым я слежу уже давно.
А во-вторых, сделайте небольшое примечание к этой записи:
Когда ограничение делается так:
echo $ (($ RANDOM% 10))
На самом деле, то, что вы заказываете интерпретатору, заключается в том, что ваше сгенерированное число всегда является модулем% (остаток от деления) последующего числа, в этом примере 10.
Любое число, деленное на 10, никогда не даст в качестве остатка нечто большее, чем сам делитель.
Проблема в том, что он тоже не даст того же числа, потому что деление на 0 нелогично для интерпретатора.
Это означает, что echo $ (($ RANDOM% 10) даст результаты от 0 до 9, но никогда не будет 10.
Решение этого конфликта - добавить единицу к вашему пределу, чтобы это же число попало в случайный диапазон.
echo $ (($ RANDOM% 11))
Это даст результат от 0 до 10.
Приветствие.
Привет, я как раз собирал что-то подобное, но столкнулся с проблемой.
Я хочу сделать 6 разных чисел от 00 до 45, но не повторять их.
эхо $(($СЛУЧАЙНЫЙ%46)) $(($СЛУЧАЙНЫЙ%46)) $(($СЛУЧАЙНЫЙ%46)) $(($СЛУЧАЙНЫЙ%46)) $(($СЛУЧАЙНЫЙ%46)) $(($ СЛУЧАЙНО%46))
ПРИМЕР: 17 33 16 36 45 27