Понекогаш, програмираме некоја скрипта во Баш .... и треба (поради некоја причина) да генерираме некој случаен број.
За тоа можете да програмирате цела апликација (или функција ...) да, но ... curубопитно нашиот систем веќе го стори тоа
Во терминал, напишете го следново и притиснете [Внесете]:
ехо $ СЛУЧНО
... ќе се појави број, тие повторно го прават истото и се појавува друг број, и така натаму 🙂
Она што го прави е да ви покаже случаен број (кој било) помеѓу 0 и 32768 (цел број, односно без запирка).
Ако ви треба да биде случаен број, но помеѓу 0 и ... да речеме 100, можете да го поставите тоа ограничување
ехо $ (($ СЛУЧНО% 100))
Истото, друг пример ... ако сакате тоа да биде број помеѓу 0 и 29, тоа би било:
ехо $ (($ СЛУЧНО% 29))
Дали е разбрано не? 😀
Ако тие ќе го користат во баш-скрипта што ја прават, за да ја доделат генерираната вредност (случаен број) на променлива, тоа би било:
ПРОМЕНЛИВО = `ехо $ (($ РАНОМНО))`
Па, ова е тоа, не знам за тебе ... но знам дека ќе ми биде корисно во одреден момент хахаха.
Со почит
10 коментари, оставете ги вашите
Па, го тестирав и враќа само 4-цифрен број, како можам да го направам поголем?
Многу интересен совет, благодарам.
Враќа број помеѓу 0 и 32768, не успеав да добијам поголеми броеви.
и дали може да генерира ексадецимали ????
ПРОМЕНЛИВО = `ехо $ (($ РАНОМНО))`
Тоа работи, но не е оптимално, од едноставна причина што СЛУЧАЈОТ е променлива и можете да направите:
променлива = $ СЛУЧНО
и тоа е тоа! не пуштај ехо во терминал (што е тоа што го правиш)
Да, очигледно може да се постигне вака ... единствената разлика е во тоа што подоцна, за да се види бројот што го зеде променливата (бидејќи корисникот не е погодувач), ќе биде потребно да се направи ехо. и на крајот, она што го правам тука е едноставно да направам ехо (за да може корисникот да види кој број е земен) од самиот почеток.
Дали се разбирам? 🙂
Друг начин да генерирате случаен број, иако овој пат тоа би била оваа команда:
датум "+% N" | исечете -в 9
Тоа ќе ни го даде датумот во наносекунди со 9 цифри. Ако сакаме една цифра, тогаш ќе ја поставите „исечете-c 9“ (последната цифра е секогаш по случаен избор затоа што е најмалата од бројот). Ако сакаме 2 фигури, тогаш го ставаме "исечокот - в 8,9". Ако сакаме три фигури тогаш „исечи -ц 7-9“ (започнуваме да ја користиме цртичката).
Единствената лоша работа во врска со ова е ако сакаме да добиеме многу случајни броеви по ред за кратко време, бидејќи ова е случаен број заснован на датум со своето време. Тоа е, ако направиме за со таа команда можеме да видиме дека:
$ за i во `сек. 1 1 500`; направете датум "+% N"; направено
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Мислам дека е јасно нели? Бројките од левата страна се повеќе слични за краток временски период, се разбира, а оние од десната страна се повеќе „случајни“.
ммм. Ми се допадна, имам мини скрипта, насликана е за да генерира случајни броеви, благодарам.
Служи .. и многу ..
особено ако програмирате интерфејс во баш со лозинка, безбедност, итн, итн, итн хаха.
Одличен апроте.
Еј.
Како прво, секако, честитки за оваа одлична веб-страница, која ја следам подолго време.
И второ, направете мала белешка за овој запис:
Кога ограничувањето се прави вака:
ехо $ (($ СЛУЧНО% 10))
Всушност, она што го нарачувате преведувачот е дека вашиот генериран број е секогаш модул% (остаток од поделбата) на последователниот број, во овој пример, 10.
Било кој број поделен со 10 никогаш нема да даде како остаток нешто поголемо од самиот делител.
Проблемот е во тоа што нема да го даде истиот број или, бидејќи поделбата со 0 не е логична за толкувачот.
Ова значи дека ехо $ (($ RANDOM% 10) ќе даде резултати помеѓу 0 и 9, но никогаш 10.
Решението за овој конфликт е да додадете еден на вашата граница, така што истиот број спаѓа во случаен опсег.
ехо $ (($ СЛУЧНО% 11))
Ова ќе даде резултати помеѓу 0 и 10.
Честитка.
Здраво, само што градев вакво нешто, но наидов на проблем.
Сакам да направам 6 различни броеви од 00 до 45, но да не ги повторувам.
ехо $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($) СЛУЧАЈНИ% 46))
ПР: 17 33 16 36 45 27