Kuidas seada bashi muutujate juhuslikud numbrid



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Bashi viipal saate hõlpsalt genereerida juhusliku arvu, mida saate seejärel selle numbri muutujaks seada. See on kasulik kõigeks, alates teatud tüüpi skriptide kirjutamisest kuni lauaplaadi rollimängude seikluste käivitamiseni. Ükskõik, kas kirjutate D&D kampaaniat või autorite utiliidi võimsas bashi keeles, võite tavaliselt ühe koodireaga pääseda. See on ka väga kasulik tööriist teatud turvakontrollide eelvormistamisel, kuid peate meeles pidama, et head kräkkerid võivad neist lihtsatest numbrigeneraatoritest mööda hiilida. Need on endiselt kasulikud teatud tüüpi paroolide ja koodide genereerimisel, mis aitaks niikuinii asju turvaliselt hoida.



Selle saavutamiseks on paar erinevat viisi ja iga tehnika ei sobi igas olukorras, nii et andsime endast parima, et heita pilk mõlemale viisile ja testisime seda, et see toimiks. Selleks peate töötama terminalist, nii et graafilise terminali avamiseks kasutage klahve Ctrl + Alt + T või Super (Windows) + T, alustage kirjutades terminali Dashi, valige see rakendusest või viskist ja süsteemitööriistade menüüd või minge tõsiselt virtuaalsesse terminali, kasutades klahve Ctrl, Alt ja klahvi F1 ja F6 vahel.



1. meetod: täielik juhusliku baidi valimine

Juhusliku arvu genereerimiseks vahemikus 1 kuni 256 käivitage järgmine käsk otse bashi viipast:



-An-N1 -tu1 / dev / urandom

Ehkki mõnikord näete, et seda käsku viidatakse / dev / randomile / dev / urandomi asemel, ei soovi te seda ilmselt käivitada. See võib tahtmatult röövida teistelt programmidelt võimaluse kasutada juhuslikku seemnegeneraatorit selle kasutamise ajal. Kui olete programmi käivitanud ja numbri saanud, võite olla kindel, et see töötab ka nii:



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

See määrab muutuja ranNum arvuks vahemikus 1 kuni 256, mis on valitud selle käivitamise ajal. Saate seda käivitada käsurealt või skripti seest ja see peaks töötama mõlemal viisil. Pidage meeles, et saate ranNumi asendada mis tahes kehtiva muutuja nimega.

2. meetod: muutuja määramine juhuslikuks arvuks vahemikus 1 kuni ükskõik milline

Saate käivitada käsurealt echo $ [RANDOM% 40 + 1] juhusliku arvu vahemikus 1 kuni 40 otse standardväljundisse saatmiseks, kuid võite ka 40 asendada käsus praktiliselt mis tahes numbriga. Lõpuks saab teie hostimasina arhitektuur otsa või võib-olla algarvu, kuid on kahtlane, et vajate ikkagi nii suurt arvu.

Oletame, et soovite oma muutuja konfiguratsiooni jaoks genereerida juhusliku arvu vahemikus 1–10. Võite joosta:

ranNum = $ [RANDOM% 10 + 1]

Pidage meeles, et saate 10 asendada soovitud ülemise väärtusega. See väärtus on kaasav, mis tähendab, et 10 on kehtiv tagastatud näitaja. Kui soovisite seda ühe võrra vähendada, siis tehke C või C ++ stiilis -1 matemaatika asemel lihtsalt väärtus 9. Seda pole vaja, kui määrate muutuja selle meetodi abil, ja need toovad tegelikult ootamatuid tulemusi, lisades või lahutades numbreid.

3. meetod: ühe juhusliku biti valimine

Kui peate muutuja määrama juhuslikuks bitiks kas null või üks, võiksite eelmist koodi muuta järgmiselt:

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

Selle koodiga määratakse ranNum väärtuseks 1 või 0, sõltuvalt sellest, kas numbrid, mille ta valis / dev / urandom fail oli paaris või paaritu. See võib olla kasulik, kui peate ühele või teisele olekule seadma lihtsa jah või ei võrrandi.

Kui see pole töö jaoks piisavalt juhuslik, võite saada veidi juhuslikuma numbri, helistades kataloogi / proc / sys / kernel / random:

ranNum = $ ((0x $ (lõigatud -c1-1 / proc / sys / kernel / juhuslik / uuid)% 2))

Jällegi seab see muutuja väärtuseks ainult 1 või 0, mis sobib ideaalselt binaarse loogika jaoks, kuid pole nii kasulik aegadel, kui teil võib vaja minna pikemat numbrit. Võite siiski kasutada mõnda neist ridadest bashi skriptis, kui teil on selleks vajadust. See teine ​​variant võib tegelikult olla parem olukordades, kus ka esimene ebaõnnestub

4. meetod: autorite bashi skriptid juhuslike numbrite tagastamiseks

Kui soovite, et teil oleks käepärane tööriist juhusliku arvu genereerimiseks mis tahes ajal, saate selleks luua käsurea skripti. See ei kasuta midagi muud kui tavalisel bashi keelel, mida enamikul kaasaegsetel Linuxi viipadel on, nii et peaaegu kõik kaasaegsed Linuxi jaotused ja paljud BSD-põhised opsüsteemid peaksid sellega suurepäraselt hakkama saama. Enne edasiminekut võiksite kasutada cd ~ / .local / bin, veendumaks, et teil on skript kohas, kus saate seda kõikjal käivitada.

Alustuseks tippige nano random või vi random, kuigi võite soovi korral oma skripti jaoks kasutada ka muud nime. Soovi korral võite kasutada ka mõnda muud tekstiredaktorit. Oletame, et soovite luua sellise, mis tagastaks käsureale sisestades kas 1 või 0. Kui kasutate nano, sisestage järgmine ja vajutage salvestamiseks Ctrl + O:

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

Tippige tekstiredaktorist väljumiseks Ctrl + X ja kui olete tagasi käsureal, kasutage skripti kasutatavaks muutmist chmod + x random. Muidugi võiksite kasutada ranNum = $ (($ RANDOM% 2)), et saaksite täpselt kontrollida, millist numbrit soovite tagasi saada. Oletame, et soovite regulaarselt valida numbri vahemikus 1 kuni 50. Muutke bashi skripti tekst järgmiseks:

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

Nüüd saate seda hõlpsasti käsurealt käivitada, tippides juhusliku, kui soovite juhuslikku arvu genereerida.

4 minutit loetud