Kako nastaviti spremenljivke bash na naključne številke



Preizkusite Naš Instrument Za Odpravo Težav

V pozivu bash lahko enostavno ustvarite naključno število, ki ga lahko nato uporabite za nastavitev omenjene številke kot spremenljivke. To je koristno za vse, od pisanja določenih vrst skriptov do izvajanja namiznih pustolovščin za igranje vlog. Ne glede na to, ali pišete kampanjo D&D ali pišete pripomoček v zmogljivem bash jeziku, se vam običajno lahko izognete z eno vrstico kode. To je tudi zelo koristno orodje pri poskusih izvedbe določenih varnostnih pregledov, vendar se boste spomnili, da lahko dobri krekerji zaobidejo te preproste generatorje številk. Še vedno so uporabni za ustvarjanje določenih vrst gesel in kode, kar lahko vseeno pomaga ohranjati stvari na varnem.



To lahko dosežemo na nekaj različnih načinov in ni vsaka tehnika primerna za vsako situacijo, zato smo se potrudili, da smo si ogledali vsako pot in jo preizkusili, da je delovala. Za to boste morali delati iz terminala, zato bodisi uporabite Ctrl + Alt + T ali Super (Windows) + T, da odprete grafični terminal, zaženite ga tako, da vtipkate terminal v pomišljaj, ga izberete v aplikaciji ali brku in sistemskih orodij ali se z uporabo Ctrl, Alt in tipke med tipkama F1 in F6 resno odpravite na virtualni terminal.



1. način: izbira celotnega naključnega bajta

Naključno število lahko ustvarite med 1 in 256 tako, da zaženete naslednji ukaz neposredno iz poziva bash:



od -An -N1 -tu1 /dev/urandom

Čeprav boste včasih videli, da se ta ukaz nanaša na / dev / random namesto na / dev / urandom, verjetno ne boste želeli teči na ta način. To lahko nenamerno oropa druge programe, da ne bi mogli uporabljati generatorja naključnih semen med njegovo uporabo. Ko zaženete program in dobite številko, ste lahko prepričani, da bo deloval tudi tako:



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

S tem bo spremenljivka ranNum nastavljena na število med 1 in 256, izbrano v času, ko jo zaženete. Zaženete ga lahko iz ukazne vrstice ali znotraj skripta in bi moral delovati v vsakem primeru. Upoštevajte, da lahko runNum zamenjate s katerim koli veljavnim imenom spremenljivke.

2. način: nastavitev spremenljivke na naključno število med 1 in karkoli

Iz ukazne vrstice lahko zaženete echo $ [RANDOM% 40 + 1] in pošljete naključno število med 1 in 40 naravnost v standardni izhod, lahko pa tudi 40 v ukazu nadomestite s skoraj poljubno številko. Sčasoma bo v arhitekturi vašega gostiteljskega stroja zmanjkalo številk ali morda bash, vendar je dvomljivo, da vseeno potrebujete tako veliko število.

Predpostavimo, da želite za konfiguracijo spremenljivke ustvariti naključno število med 1 in 10. Lahko zaženete:

runNum = $ [RANDOM% 10 + 1]

Upoštevajte, da lahko 10 zamenjate s katero koli zgornjo vrednostjo, ki jo želite. Ta vrednost vključuje, kar pomeni, da je 10 veljavna vrnjena številka. Če ste jo želeli zmanjšati za eno, preprosto vnesite vrednost 9, namesto da bi uporabljali matematiko v slogu C ali C ++ -1. Ti so pri nastavitvi spremenljivke s to metodo nepotrebni in bodo dejansko ustvarili nepričakovane rezultate z dodajanjem ali odštevanjem števk.

3. način: Izbira enega naključnega bita

Če morate spremenljivko nastaviti na naključni bit nič ali ena, boste morda želeli spremeniti prejšnjo kodo, kot sledi:

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

Ta koda bo postavila ranNum na 1 ali 0, odvisno od tega, ali so številke, ki jih je vzorčila iz / dev / urandom datoteke so bile sodo ali liho. To je lahko koristno, če morate v eno ali drugo stanje nastaviti preprosto enačbo da ali ne.

Če to ni dovolj naključno za tisto, s čimer delate, boste morda dobili nekoliko bolj naključno številko tako, da pokličete imenik / proc / sys / kernel / random z:

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

Vendar bo s tem spremenljivka nastavljena le na 1 ali 0, kar je kot nalašč za binarno logiko, vendar ni tako uporabno za trenutke, ko boste morda potrebovali daljšo številko. Vendar bi lahko uporabili katero koli od teh vrstic v skriptu bash, če bi to potrebovali. Ta druga možnost je dejansko boljša tudi v primerih, ko prva ne uspe

4. metoda: Avtorstvo bash skriptov za vrnitev naključnih števil

Če želite imeti priročno orodje za generiranje naključnih številk kadar koli, lahko za to ustvarite skript ukazne vrstice. Pri tem se ne uporablja nič drugega kot standardni bash jezik, ki ga ima večina sodobnih pozivov za Linux, tako da bi skorajda vsaka sodobna distribucija Linuxa in kar nekaj operacijskih sistemov, ki temeljijo na BSD, to dobro obravnavala. Morda boste želeli uporabiti cd ~ / .local / bin, preden nadaljujete, da se prepričate, da imate svoj skript tam, kjer ga lahko izvedete od kjer koli.

Za začetek vnesite nano naključno ali vi naključno, čeprav bi za skript lahko uporabili drugo ime, če želite. Če želite, lahko uporabite tudi drug urejevalnik besedil. Recimo, da ste želeli ustvariti takšnega, ki bo ob vnosu v ukazno vrstico vrnil bodisi 1 bodisi 0. Vnesite naslednje in pritisnite Ctrl + O, da ga shranite, če uporabljate nano:

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

Vnesite Ctrl + X, da zaprete urejevalnik besedila, in ko se vrnete v ukazno vrstico, uporabite chmod + x random, da bo vaš skript uporaben. Seveda lahko uporabite ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) ali katero koli drugo vrstico namesto ranNum = $ (($ RANDOM% 2)), tako da lahko natančno nadzirate, katero vrsto številke želite nazaj. Recimo, da ste želeli redno izbirati število med 1 in 50. Besedilo skripta bash spremenite v:

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

Zdaj ga lahko enostavno zaženete iz ukazne vrstice, tako da vtipkate naključno, kadar koli želite ustvariti naključno številko.

4 minute branja