Paano Magtakda ng mga bash Variable sa Mga Random na Numero



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Madali kang makakabuo ng isang random na numero sa bash prompt, na maaari mong gamitin upang maitakda ang nasabing numero bilang isang variable. Kapaki-pakinabang ito para sa lahat mula sa pagsulat ng ilang mga uri ng script hanggang sa pagpapatakbo ng mga pakikipagsapalaran sa tabletop roleplaying. Maaaring nagsusulat ka ng isang kampanya sa D & D o may-akda ng isang utility sa malakas na bash na wika, karaniwang maaari kang makawala sa isang solong linya ng code. Ito rin ay isang napaka kapaki-pakinabang na tool kapag sinusubukang i-preform ang ilang mga pagsusuri sa seguridad, ngunit nais mong tandaan na ang magagaling na crackers ay maaaring maiwasan ang simpleng mga tagabuo ng bilang. Kapaki-pakinabang pa rin sila para sa pagbuo ng ilang mga uri ng password at code, na maaaring makatulong na panatilihing ligtas pa rin ang mga bagay.



Mayroong ilang iba't ibang mga paraan upang magawa ito, at hindi bawat pamamaraan ay tama para sa bawat sitwasyon, kaya't ginawa namin ang aming makakaya upang tingnan ang bawat paraan at subukan ito upang matiyak na gumagana ito. Kakailanganin mong gumana mula sa isang terminal para dito, kaya't gamitin ang alinman sa Ctrl + Alt + T o Super (Windows) + T upang buksan ang isang grapikong terminal, simulan ang isa sa pamamagitan ng pag-type ng terminal sa Dash, piliin ito mula sa Application o Whisker at mga menu ng Mga Tool ng System o magtungo sa isang virtual terminal nang masigasig sa pamamagitan ng paggamit ng Ctrl, Alt at isang susi sa pagitan ng F1 at F6.



Paraan 1: Pagpili ng isang Buong Random Byte

Maaari kang makabuo ng isang random na numero mula sa pagitan ng 1 at 256 sa pamamagitan ng pagpapatakbo ng sumusunod na utos nang direkta mula sa bash prompt:



ng -An -N1 -tu1 / dev / urandom

Habang maaari mong makita kung minsan ang utos na ito na sumangguni sa / dev / random sa halip na / dev / urandom, malamang na hindi mo gugustuhin na tumakbo sa ganitong paraan. Maaaring hindi sinasadya nitong nakawan ang iba pang mga programa mula sa kakayahang magamit ang random na generator ng binhi habang ginagamit mo ito. Kapag natakbo mo na ang programa at nakakuha ng isang numero, makakasiguro kang gagana rin ito sa ganitong paraan:



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

Itatakda nito ang variable ranNum sa isang numero sa pagitan ng 1 at 256, na napili sa oras na patakbuhin mo ito. Maaari mong patakbuhin ito mula sa linya ng utos o mula sa loob ng isang script at dapat itong gumana sa alinmang paraan. Tandaan na maaari mong palitan ang ranNum ng anumang wastong variable na pangalan.

Paraan 2: Pagtatakda ng isang variable sa isang Random na Numero sa Pagitan ng 1 at Anuman

Maaari mong patakbuhin ang echo $ [RANDOM% 40 + 1] mula sa linya ng utos upang magpadala ng isang random na numero sa pagitan ng 1 at 40 na diretso sa karaniwang output, ngunit maaari mo ring palitan ang 40 sa utos ng halos anumang numero. Sa kalaunan ang arkitektura ng iyong host machine ay mauubusan ng mga digit o marahil ay malubog ang kalooban, ngunit kaduda-dudang kailangan mo pa rin ng isang napakataas na bilang.

Ipagpalagay natin na nais mong bumuo ng isang random na numero sa pagitan ng 1 at 10 para sa iyong variable na pagsasaayos. Maaari kang tumakbo:

ranNum = $ [RANDOM% 10 + 1]

Tandaan na maaari mong palitan ang 10 ng kahit anong pinakamataas na halaga na gusto mo. Kasama ang halagang ito, nangangahulugang ang 10 ay isang wastong ibinalik na pigura. Kung nais mong bawasan ito ng isa, gawin lamang ang halagang 9 sa halip na gumamit ng C o C ++ style -1 na matematika. Hindi kinakailangan ang mga ito kapag nagtatakda ng isang variable gamit ang pamamaraang ito, at makakabuo talaga sila ng mga hindi inaasahang resulta sa pamamagitan ng pagdaragdag o pagbabawas ng mga digit.

Paraan 3: Pagpili ng isang solong Random Bit

Kung kailangan mong magtakda ng isang variable sa isang random na bit ng alinman sa zero o isa, maaari mong baguhin ang nakaraang code tulad ng sumusunod:

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

Itatakda ng code na ito ang ranNum sa alinman sa 1 o 0 depende sa kung ang mga numero na na-sample nito mula sa / dev / urandom ang file ay pantay o kakatwa. Maaari itong maging kapaki-pakinabang kung kailangan mong magtakda ng isang simpleng oo o walang equation sa isa o sa iba pang estado.

Kung hindi ito sapat na random para sa kung ano ang iyong pinagtatrabahuhan, maaari kang makakuha ng isang bahagyang mas random na numero sa pamamagitan ng pagtawag sa direktoryo ng / proc / sys / kernel / random na may:

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

Gayunpaman, muli, itatakda lamang nito ang variable sa 1 o 0, na perpekto para sa binary na lohika ngunit hindi kasing kapaki-pakinabang para sa mga oras na maaaring kailanganin mo ng mas mahabang numero. Gayunpaman, maaari mong gamitin ang alinman sa mga linyang ito sa isang bash script kung kailangan mong gawin ito. Ang pangalawang pagpipilian na ito ay maaaring maging mas mahusay para sa mga sitwasyon kung saan nabigo rin ang una

Pamamaraan 4: Pag-aayos ng bash Script upang Ibalik ang Mga Random na Numero

Kung nais mong magkaroon ng isang madaling gamiting tool para sa pagbuo ng isang random na numero sa anumang oras, maaari kang lumikha ng isang script ng linya ng utos upang gawin ito. Gumagamit ito ng hindi hihigit sa karaniwang bash na wika na karamihan sa mga modernong pag-uudyok ng Linux ay mayroon, kaya halos anumang modernong pamamahagi ng Linux at ilan sa mga operating system na batay sa BSD ay dapat hawakan ito nang maayos. Maaari mong hilingin na gumamit ng cd ~ / .local / bin bago magpatuloy upang masiguro na mailalagay mo ang iyong script sa isang lugar na maaari mo itong maisagawa mula saanman.

Mag-type ng nano random o vi random upang magsimula, kahit na maaari kang gumamit ng ibang pangalan para sa iyong script kung nais mo. Maaari mo ring gamitin ang isa pang text editor kung nais mo. Sabihin na nais mong lumikha ng isa na babalik alinman sa 1 o 0 kapag nai-type sa linya ng utos. Ipasok ang sumusunod at pagkatapos ay itulak ang Ctrl + O upang mai-save ito kung gumagamit ka ng nano:

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

I-type ang Ctrl + X upang lumabas sa text editor at sa sandaling bumalik sa linya ng utos ay gamitin ang chmod + x random upang magawang magamit ang iyong script. Maaari kang gumamit ng kurso sa ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) o anumang iba pang linya kapalit ng ranNum = $ (($ RANDOM% 2)) upang makontrol mo nang eksakto kung anong uri ng numero ang gusto mong balikan. Sabihin nating nais mong pumili ng isang numero sa pagitan ng 1 at 50 nang regular. Palitan ang teksto ng bash script sa:

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

Madali mo na itong patakbuhin mula sa linya ng utos sa pamamagitan ng pagta-type ng random tuwing nais mong makabuo ng isang random na numero.

Basahin ang 4 na minuto