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