Včasih programiramo kakšen skript Bash ... in moramo (iz nekega razloga) ustvariti naključno število.
Za to lahko programirate celotno aplikacijo (ali funkcijo ...) da, toda ... nenavadno je, da je to že storil naš sistem 😀
V terminal vnesite naslednje in pritisnite [vnesite]:
echo $ RANDOM
... prikaže se številka, spet naredijo isto in prikaže se druga številka itd. 🙂
Prikaže vam naključno število (poljubno) med 0 in 32768 (celo število, torej brez vejice).
Če potrebujete naključno število, vendar med 0 in ... recimo 100, lahko to omejitev postavite nanjo 😀
echo $ (($ RANDOM% 100))
Enako, še en primer ... če želite, da gre za število med 0 in 29, bi bilo:
echo $ (($ RANDOM% 29))
Ali ni razumljeno? 😀
Če jo bodo uporabili v skriptu bash, ki ga izvajajo, bi spremenljivki dodelili ustvarjeno vrednost (naključno število):
VARIABLE = `echo $ (($ RANDOM))`
In to je to, ne vem zate ... ampak vem, da mi bo v nekem trenutku koristilo hahaha.
pozdrav
No, preizkusil sem ga in vrne samo štirimestno številko, kako ga lahko povečam?
Zelo zanimiv namig, hvala.
Vrne številko med 0 in 32768, večjih številk nisem mogel dobiti.
in ali lahko ustvarja eksadecimals ????
VARIABLE = `echo $ (($ RANDOM))`
To deluje, vendar ni optimalno, iz preprostega razloga, ker je RANDOM spremenljivka in lahko storite:
spremenljivka = $ RANDOM
in to je to! ne zaženite odmeva v terminalu aprte (kar počnete)
Ja, očitno je to mogoče doseči tako ... edina razlika je v tem, da bi pozneje, da bi videli številko, ki jo je sprejela spremenljivka (ker uporabnik ni ugibalec), morali narediti odmev .... in na koncu tukaj preprosto naredim odmev (tako da lahko uporabnik vidi, katero številko je zajeto) od začetka.
Se razumem? 🙂
Drug način za ustvarjanje naključnega števila, čeprav bi bil tokrat ta ukaz:
datum "+% N" | cut -c 9
To bi nam dalo datum v nanosekundah z 9 števkami. Če želimo enomestno številko, potem vstavite "cut -c 9" (zadnja številka je vedno bolj naključna, ker je najmanjša od števila). Če želimo dve številki, postavimo "rez - c 2". Če želimo tri številke, potem "izrežemo -c 8,9-7" (začnemo uporabljati vezaj).
Edino slabo pri tem je, če želimo v kratkem času dobiti veliko naključnih števil zapored, ker je to naključno število, ki temelji na datumu s svojim časom. Se pravi, če s tem ukazom naredimo for, lahko vidimo, da:
$ za i v `naslednjih 1 1 500`; datum do "+% N"; Končano
...
...
...
308311367
310807595
313273093
315725181
318186139
320671403
323360117
325733353
328335462
330694870
333259893
335858999
338375622
340798446
...
...
...
Mislim, da je jasno, kajne? Številke na levi so si v kratkem času seveda bolj podobne, na desni pa bolj "naključne".
mmm…. Všeč mi je, imam mini skript, naslikan je tako, da ustvarja naključne številke, hvala.
Služi .. in veliko ..
še posebej, če programiraš vmesnik v bash z geslom, zaščito itd, itd itd itd haha.
Odlična priložnost.
Hej.
Najprej seveda čestitke na tej odlični spletni strani, ki jo spremljam že dolgo.
In drugič, dodajte malo opombe k temu vnosu:
Ko je omejitev narejena tako:
echo $ (($ RANDOM% 10))
Pravzaprav tisto, kar naročite tolmaču, je, da je vaše ustvarjeno število vedno modul% (preostanek delitve) naslednje številke, v tem primeru 10.
Vsako število, deljeno z 10, nikoli ne bo dalo preostalega nekaj večjega od samega delitelja.
Težava je v tem, da tudi ne bo dal iste številke, ker delitev z 0 za tolmača ni logična.
To pomeni, da bo echo $ (($ RANDOM% 10) dal rezultate med 0 in 9, nikoli pa 10.
Rešitev tega konflikta je, da ga dodate svoji meji, tako da enako število spada v naključni obseg.
echo $ (($ RANDOM% 11))
To bo dalo rezultate med 0 in 10.
Pozdrav.
Pozdravljeni, pravkar sem sestavljal nekaj takega, vendar sem naletel na težavo.
Želim narediti 6 različnih številk od 00 do 45, vendar jih ne ponavljam.
odmev $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ NAKLJUČNO %46))
Npr.: 17 33 16 36 45 27