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