Kuinka asettaa bash-muuttujat satunnaislukuihin



Kokeile Instrumenttia Ongelmien Poistamiseksi

Voit helposti luoda satunnaisluvun bash-kehotteessa, jonka avulla voit asettaa mainitun luvun muuttujaksi. Tästä on hyötyä kaikessa tietyntyyppisten komentosarjojen kirjoittamisesta pöytälevyn roolipelien seikkailuihin. Olitpa sitten kirjoittamassa D & D-kampanjaa tai kirjoittanut apuohjelman tehokkaalla bash-kielellä, voit yleensä päästä eroon yhdellä koodirivillä. Tämä on myös erittäin hyödyllinen työkalu, kun yritetään tehdä tiettyjä turvatarkastuksia, mutta muista, että hyvät keksejä voivat kiertää nämä yksinkertaiset numerogeneraattorit. Ne ovat edelleen hyödyllisiä tietyntyyppisten salasanojen ja koodien luomisessa, mikä voi auttaa pitämään asiat turvassa joka tapauksessa.



On olemassa muutama erilainen tapa saavuttaa tämä, eikä kaikki tekniikat ole sopivia kaikkiin tilanteisiin, joten teimme parhaamme katsomaan jokaista tapaa ja testasimme sen varmistaaksemme, että se toimii. Sinun on työskenneltävä tätä varten päätelaitteesta, joten avaa graafinen pääte joko Ctrl + Alt + T tai Super (Windows) + T avulla. Aloita kirjoittamalla pääte Dashiin, valitse se sovelluksesta tai Whiskeristä ja Järjestelmätyökalut-valikot tai siirry tosissaan virtuaaliterminaaliin käyttämällä Ctrl, Alt ja näppäintä F1 ja F6.



Tapa 1: Koko satunnaisen tavun valitseminen

Voit luoda satunnaisluvun välillä 1-256 suorittamalla seuraavan komennon suoraan bash-kehotteesta:



-An-N1 -tu1 / dev / urandom

Vaikka saatat joskus nähdä tämän komennon viittaavan / dev / satunnaisiin / dev / urandomin sijaan, et todennäköisesti halua suorittaa tätä tapaa. Tämä voi tahattomasti ryöstää muita ohjelmia mahdollisuudesta käyttää satunnaista siemengeneraattoria käytön aikana. Kun olet suorittanut ohjelman ja saanut numeron, voit olla varma, että se toimii myös tällä tavalla:



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

Tämä asettaa muuttujan ranNum arvoksi 1–256, joka on valittu sillä hetkellä, kun suoritat sen. Voit suorittaa sen komentoriviltä tai komentosarjan sisältä, ja sen pitäisi toimia jommallakummalla tavalla. Muista, että voit korvata ranNumin millä tahansa kelvollisella muuttujan nimellä.

Tapa 2: Muuttujan asettaminen satunnaislukuun välillä 1 ja mikä tahansa

Voit suorittaa komentoriviltä echo $ [RANDOM% 40 + 1] lähettääksesi satunnaisluvun välillä 1–40 suoraan vakiolähtöön, mutta voit myös korvata komennossa olevan 40: n käytännöllisesti katsoen millä tahansa numerolla. Loppujen lopuksi isäntäkoneesi arkkitehtuuri loppuu numeroista tai ehkä bash, mutta on epäilyttävää, että tarvitset joka tapauksessa niin suuren määrän.

Oletetaan, että haluat luoda satunnaisluvun välillä 1–10 muuttujakokoonpanolle. Voit juosta:

ranNum = $ [RANDOM% 10 + 1]

Muista, että voit korvata 10 haluamallasi suurimmalla arvolla. Tämä arvo on kattava, mikä tarkoittaa, että 10 on kelvollinen palautettu luku. Jos haluat pienentää sitä yhdellä, tee yksinkertaisesti arvo 9 sen sijaan, että käyttäisit C- tai C ++ -tyylin -1 matematiikkaa. Nämä eivät ole tarpeellisia asetettaessa muuttujaa tällä menetelmällä, ja ne tuottavat odottamattomia tuloksia lisäämällä tai vähentämällä numeroita.

Tapa 3: Yhden satunnaisen bitin valitseminen

Jos joudut asettamaan muuttujalle satunnaisbitin, joka on joko nolla tai yksi, kannattaa muokata edellistä koodia seuraavasti:

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

Tämä koodi asettaa ranNum-arvoksi joko 1 tai 0 riippuen siitä, näytetäänkö niistä numerot / dev / urandom tiedostot olivat parillisia tai parittomia. Tämä voi olla hyödyllistä, jos joudut asettamaan yksinkertaisen kyllä ​​tai ei yhtälön yhteen tai toiseen tilaan.

Jos tämä ei ole riittävän satunnainen työskentelysi kannalta, saatat saada hieman satunnaisemman numeron soittamalla hakemistoon / proc / sys / kernel / random:

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

Jälleen kerran tämä asettaa kuitenkin muuttujan arvoksi vain 1 tai 0, mikä on täydellinen binäärilogiikalle, mutta ei niin hyödyllinen silloin, kun saatat tarvita pidempää numeroa. Voit kuitenkin käyttää mitä tahansa näistä riveistä bash-komentosarjassa, jos sinulla on tarvetta tehdä niin. Tämä toinen vaihtoehto voi todella olla parempi tilanteissa, joissa myös ensimmäinen epäonnistuu

Tapa 4: Bash-komentosarjojen laatiminen satunnaislukujen palauttamiseksi

Jos haluat käyttää kätevää työkalua satunnaisluvun luomiseen milloin tahansa, voit luoda sen varten komentorivikomentosarjan. Tämä ei käytä muuta kuin tavallisella bash-kielellä, joka on useimmilla moderneilla Linux-kehotteilla, joten melkein minkä tahansa modernin Linux-jakelun ja monien BSD-pohjaisten käyttöjärjestelmien pitäisi käsitellä tätä hienosti. Voit halutessasi käyttää cd ~ / .local / bin -ohjelmaa ennen jatkamista varmistaaksesi, että komentosarjasi on paikassa, jossa voit suorittaa sen missä tahansa.

Kirjoita aluksi nano random tai vi random, vaikka voisit käyttää skriptiisi toista nimeä, jos haluat. Voit halutessasi käyttää myös toista tekstieditoria. Oletetaan, että haluat luoda sellaisen, joka palauttaisi joko 1 tai 0, kun kirjoitat komentoriville. Kirjoita seuraava ja tallenna se painamalla Ctrl + O, jos käytät nanoa:

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

Kirjoita Ctrl + X poistuaksesi tekstieditorista ja palataksesi komentoriville, käytä komentoa chmod + x random, jotta komentosarjasi olisi käyttökelpoinen. Voit tietysti käyttää ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) tai mitä tahansa muuta riviä ranNum = $ (($ RANDOM% 2)), jotta voit hallita tarkalleen minkälaisen numeron haluat takaisin. Oletetaan, että halusit valita numeron välillä 1–50 säännöllisesti. Vaihda bash-komentosarjan teksti seuraavasti:

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

Voit nyt suorittaa sen helposti komentoriviltä kirjoittamalla satunnaisen aina, kun haluat luoda satunnaisluvun.

4 minuuttia luettu