Kako postaviti bash varijable na slučajne brojeve



Isprobajte Naš Instrument Za Uklanjanje Problema

Na bash odzivu možete jednostavno generirati slučajni broj, koji zatim možete koristiti za postavljanje navedenog broja kao varijable. Ovo je korisno za sve, od pisanja određenih vrsta skripti do izvođenja stolnih avantura igranja uloga. Bez obzira pišete li D&D kampanju ili autor uslužnog programa na moćnom bash jeziku, obično se možete izvući s jednim retkom koda. Ovo je također vrlo koristan alat pri pokušaju izrade određenih sigurnosnih provjera, ali morat ćete se sjetiti da dobri krekeri mogu zaobići ove jednostavne generatore brojeva. I dalje su korisni za generiranje određenih vrsta lozinki i koda, što ionako može pomoći u zaštiti stvari.



Postoji nekoliko različitih načina da se to postigne, a nije svaka tehnika ispravna za svaku situaciju, pa smo se potrudili pogledati svaki način i testirati ga kako bismo osigurali da djeluje. Za to ćete trebati raditi s terminala, pa upotrijebite Ctrl + Alt + T ili Super (Windows) + T da biste otvorili grafički terminal, pokrenite ga tako što ćete utipkati terminal u crticu, odaberite ga iz programa ili brka i izbornike System Tools ili se ozbiljno uputite na virtualni terminal pomoću Ctrl, Alt i tipke između F1 i F6.



Metoda 1: Odabir punog slučajnog bajta

Slučajni broj možete generirati između 1 i 256 pokretanjem sljedeće naredbe izravno iz bash retka:



od -An -N1 -tu1 / dev / urandom

Iako biste ponekad mogli vidjeti da se ova naredba odnosi na / dev / random umjesto na / dev / urandom, vjerojatno nećete željeti trčati na ovaj način. To može nenamjerno oteti drugim programima mogućnost korištenja generatora slučajnih sjemenki tijekom vaše upotrebe. Nakon što pokrenete program i dobijete broj, možete biti sigurni da će raditi i na ovaj način:



ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom)))

Ovo će postaviti varijablu ranNum na broj između 1 i 256, odabran u trenutku kada je pokrenete. Možete ga pokrenuti iz naredbenog retka ili iznutra skripte i trebao bi raditi u bilo kojem slučaju. Imajte na umu da ranNum možete zamijeniti bilo kojim važećim imenom varijable.

Metoda 2: Postavljanje varijable na slučajni broj između 1 i bilo čega

Možete pokrenuti echo $ [RANDOM% 40 + 1] iz naredbenog retka da biste poslali slučajni broj između 1 i 40 ravno na standardni izlaz, ali možete i zamijeniti 40 u naredbi s gotovo bilo kojim brojem. Na kraju će arhitektura vašeg računala za domaćinstvo ostati bez znamenki ili možda bash, ali dvojbeno je da vam je ionako potreban tako velik broj.

Pretpostavimo da želite generirati slučajni broj između 1 i 10 za svoju varijablu konfiguracije. Možete trčati:

ranNum = $ [RANDOM% 10 + 1]

Imajte na umu da 10 možete zamijeniti bilo kojom gornjom vrijednošću koju želite. Ova vrijednost uključuje, što znači da je 10 valjana vraćena vrijednost. Ako ste ga htjeli smanjiti za jedan, jednostavno napravite vrijednost 9 umjesto da koristite matematiku C ili C ++ stil -1. Oni su nepotrebni pri postavljanju varijable ovom metodom i zapravo će generirati neočekivane rezultate dodavanjem ili oduzimanjem znamenki.

3. metoda: Odabir jednog slučajnog bita

Ako trebate postaviti varijablu na slučajni bit ili nula ili jedan, tada ćete možda htjeti izmijeniti prethodni kôd na sljedeći način:

ranNum = $ (($ (od -An -N1 -i / dev / urandom)% 2))

Ovaj će kôd postaviti ranNum na 1 ili 0, ovisno o tome jesu li brojevi koje je uzorkovao iz / dev / urandom datoteke bile parne ili neparne. To može biti korisno ako morate postaviti jednostavnu jednadžbu da ili ne u jedno ili drugo stanje.

Ako ovo nije dovoljno slučajno za ono na čemu radite, možda ćete dobiti malo slučajniji broj pozivanjem direktorija / proc / sys / kernel / random sa:

ranNum = $ ((0x $ (cut -c1-1 / proc / sys / kernel / random / uuid)% 2))

No opet, ovo će varijablu postaviti samo na 1 ili 0, što je savršeno za binarnu logiku, ali nije toliko korisno u vremenima kada će vam trebati duži broj. Međutim, možete koristiti bilo koji od ovih redaka u bash skripti ako vam je to bilo potrebno. Ova druga opcija zapravo bi mogla biti bolja za situacije kada i prva zakaže

Metoda 4: Autoriziranje bash skripti za vraćanje slučajnih brojeva

Ako želite imati prikladan alat za generiranje slučajnog broja u bilo kojem trenutku, za to možete stvoriti skriptu naredbenog retka. Ovo ne koristi ništa više od standardnog bash jezika koji ima većina modernih Linuxova upita, tako da bi gotovo svaka moderna Linux distribucija i popriličan broj BSD-ovih operativnih sustava trebali ovo sasvim dobro podnijeti. Možda ćete htjeti upotrijebiti cd ~ / .local / bin prije nego što nastavite dalje, kako biste bili sigurni da ćete imati skriptu na mjestu koje možete izvršiti s bilo kojeg mjesta.

Za početak unesite nano random ili vi random, iako biste za skriptu mogli koristiti drugi naziv, ako želite. Ako želite, možete upotrijebiti i drugi uređivač teksta. Recimo da ste željeli stvoriti onaj koji bi vraćao 1 ili 0 kad se upiše u naredbeni redak. Unesite sljedeće, a zatim pritisnite Ctrl + O da biste ga spremili ako koristite nano:

#! / bin / bash ranNum = $ (($ RANDOM% 2)) echo $ ranNum

Upišite Ctrl + X da biste izašli iz uređivača teksta, a nakon što se vratite u naredbeni redak koristite chmod + x random kako biste skriptu učinili upotrebljivom. Možete naravno koristiti ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) ili bilo koji drugi redak umjesto ranNum = $ (($ RANDOM% 2)) kako biste mogli točno kontrolirati koju vrstu broja želite natrag. Recimo da ste željeli redovito odabrati broj između 1 i 50. Promijenite tekst bash skripte u:

#! / bin / bash ranNum = $ [RANDOM% 50 + 1] echo $ ranNum

Sada ga možete lako pokrenuti iz naredbenog retka tako da upišete random kad god želite generirati slučajni broj.

4 minute čitanja