Kā iestatīt bash mainīgos uz nejaušiem skaitļiem



Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai

Bash uzvednē varat viegli ģenerēt nejaušu skaitli, kuru pēc tam varat iestatīt minēto skaitli kā mainīgo. Tas ir noderīgi visam, sākot no noteikta veida skriptu rakstīšanas līdz pat galda spēlēšanas piedzīvojumu skriešanai. Neatkarīgi no tā, vai jūs rakstāt D&D kampaņu vai autorējat utilītu spēcīgajā bash valodā, jūs parasti varētu iztikt ar vienu koda rindiņu. Tas ir arī ļoti noderīgs rīks, mēģinot sagatavot noteiktas drošības pārbaudes, taču jūs atceraties, ka labi krekeri var apiet šos vienkāršos skaitļu ģeneratorus. Tās joprojām ir noderīgas, lai ģenerētu noteikta veida paroles un kodus, kas tik un tā varētu palīdzēt saglabāt drošību.



Ir daži dažādi veidi, kā to paveikt, un ne katrs paņēmiens ir piemērots katrā situācijā, tāpēc mēs darījām visu iespējamo, lai apskatītu katru veidu un pārbaudījām, vai tas darbojas. Lai to atvērtu, jums jāstrādā no termināla, tāpēc vai nu izmantojiet Ctrl + Alt + T, vai Super (Windows) + T, lai atvērtu grafisko termināli, sāciet to, ierakstot terminālu Dash, atlasiet to no lietojumprogrammas vai ūsas un Sistēmas rīku izvēlnes vai nopietni dodieties uz virtuālo termināli, izmantojot Ctrl, Alt un taustiņu starp F1 un F6.



1. metode: pilna nejauša baita izvēle

Jūs varat ģenerēt nejaušu skaitli no 1 līdz 256, izpildot šādu komandu tieši no bash uzvednes:



no -An-N1 -tu1 / dev / urandom

Lai gan dažreiz jūs varat redzēt, ka šī komanda ir atsauce uz / dev / random, nevis / dev / urandom, jūs, iespējams, nevēlaties palaist šādā veidā. Tas var netīši aplaupīt citas programmas no iespējas izmantot izlases sēklu ģeneratoru, to lietojot. Kad esat palaidis programmu un ieguvis numuru, varat būt drošs, ka tā darbosies arī šādi:



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

Tas iestatīs mainīgo ranNum uz skaitli no 1 līdz 256, kas atlasīts tā palaišanas laikā. To var palaist no komandrindas vai no skripta iekšpuses, un tam vajadzētu darboties jebkurā veidā. Paturiet prātā, ka ranNum var aizstāt ar jebkuru derīgu mainīgā nosaukumu.

2. metode: Mainīgā iestatīšana pēc nejauša skaitļa no 1 līdz vienalga

Varat palaist echo $ [RANDOM% 40 + 1] no komandrindas, lai nosūtītu nejaušu skaitli no 1 līdz 40 tieši uz standarta izvadi, bet jūs varat arī aizstāt komandu 40 ar praktiski jebkuru skaitli. Galu galā jūsu resursdatora mašīnai beigsies cipari vai, iespējams, būs, bet ir šaubīgi, vai jums tik un tā ir nepieciešams tik liels skaitlis.

Pieņemsim, ka vēlaties ģenerēt nejaušu skaitli no 1 līdz 10 savai mainīgā konfigurācijai. Jūs varētu palaist:

ranNum = $ [RANDOM% 10 + 1]

Paturiet prātā, ka 10 varat aizstāt ar jebkuru vēlamo augšējo vērtību. Šī vērtība ir iekļauta, tas nozīmē, ka 10 ir derīgs atgriezts skaitlis. Ja vēlaties to samazināt par vienu, tad vienkārši izveidojiet vērtību 9, nevis izmantojiet C vai C ++ stila -1 matemātiku. Tie nav nepieciešami, iestatot mainīgo, izmantojot šo metodi, un tie faktiski radīs neparedzētus rezultātus, pievienojot vai atņemot ciparus.

3. metode: Viena nejauša bita izvēle

Ja mainīgajam jāiestata nejaušs bits vai nu ar nulli, vai ar vienu, iespējams, vēlēsities modificēt iepriekšējo kodu šādi:

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

Šis kods iestatīs ranNum vai nu uz 1, vai 0 atkarībā no tā, vai skaitļi, kurus tā ir atlasījusi no / dev / urandom fails bija pāra vai nepāra. Tas var būt noderīgi, ja jums jāiestata vienkāršs jā vai nē vienādojums vienam vai otram stāvoklim.

Ja tas nav pietiekami nejauši, lai strādātu, iespējams, jūs saņemsiet nedaudz vairāk nejaušu numuru, veicot zvanu direktorijā / proc / sys / kernel / random ar:

ranNum = $ ((0x $ (sagriezts -c1-1 / proc / sys / kodols / nejaušs / uuid)% 2))

Tomēr atkal tas iestatīs mainīgo tikai uz 1 vai 0, kas ir ideāli piemērots binārai loģikai, bet nav tik noderīgs reizēm, kad jums var būt nepieciešams lielāks skaitlis. Jūs tomēr varētu izmantot jebkuru no šīm rindām bash skriptā, ja jums tas būtu nepieciešams. Šī otrā iespēja faktiski varētu būt labāka situācijās, kad neizdodas arī pirmā

4. metode. Autori bash skriptus, lai atgrieztu nejaušus skaitļus

Ja vēlaties, lai jebkurā laikā būtu ērts rīks nejauša skaitļa ģenerēšanai, varat to izveidot komandrindas skriptu. Tas neizmanto neko vairāk kā standarta bash valodu, kāda ir lielākajai daļai mūsdienu Linux uzvedņu, tāpēc gandrīz jebkuram modernam Linux izplatījumam un diezgan daudzām BSD balstītām operētājsistēmām tas būtu jārisina lieliski. Pirms turpināt darbu, varat izmantot cd ~ / .local / bin, lai pārliecinātos, ka skripts atrodas vietā, kur to var izpildīt no jebkuras vietas.

Lai sāktu, ierakstiet nano random vai vi random, lai gan, ja vēlaties, scenārijam varat izmantot citu nosaukumu. Ja vēlaties, varat izmantot arī citu teksta redaktoru. Pieņemsim, ka vēlaties izveidot tādu, kas, ievadot komandrindā, atgriezīs 1 vai 0. Ievadiet šo un pēc tam nospiediet Ctrl + O, lai to saglabātu, ja izmantojat nano:

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

Ierakstiet Ctrl + X, lai izietu no teksta redaktora, un, atgriežoties komandrindā, izmantojiet chmod + x random, lai jūsu skripts būtu lietojams. Jūs, protams, ranNum = $ (($ RANDOM% 2)), lai jūs varētu precīzi kontrolēt, kāda veida numuru vēlaties atgriezt. Pieņemsim, ka vēlaties regulāri atlasīt skaitli no 1 līdz 50. Mainiet bash skripta tekstu uz:

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

Tagad to var viegli palaist no komandrindas, ierakstot nejauši, kad vien vēlaties ģenerēt nejaušu skaitli.

4 minūtes lasītas