Како поставити басх варијабле на случајне бројеве



Испробајте Наш Инструмент За Елиминисање Проблема

На басх одзиву можете лако генерисати случајан број, који затим можете користити за постављање наведеног броја као променљиве. Ово је корисно за све, од писања одређених врста скрипти до извођења авантура играња улога на столу. Било да пишете Д&Д кампању или пишете услужни програм на моћном басх језику, обично се можете извући са једним редом кода. Ово је такође врло корисна алатка када покушавате да извршите одређене безбедносне провере, али имајте на уму да добри крекери могу да заобиђу ове једноставне генераторе бројева. Они су и даље корисни за генерисање одређених врста лозинки и кода, што ионако може помоћи да се ствари заштите.



Постоји неколико различитих начина да се то постигне, а није свака техника исправна за сваку ситуацију, па смо се потрудили да погледамо сваки начин и тестирамо га како бисмо осигурали да функционише. За ово ћете морати радити с терминала, па користите Цтрл + Алт + Т или Супер (Виндовс) + Т да бисте отворили графички терминал, покрените га тако што ћете откуцати терминал у цртици, одаберите га из апликације или вискера и системске алате или се озбиљно упутите ка виртуелном терминалу користећи Цтрл, Алт и тастер између Ф1 и Ф6.



1. метод: Одабир пуног случајног бајта

Можете произвести случајни број између 1 и 256 покретањем следеће наредбе директно из басх промпта:



од -Ан -Н1 -ту1 / дев / урандом

Иако бисте понекад могли да видите ову команду која се односи на / дев / рандом уместо на / дев / урандом, вероватно нећете желети да трчите на овај начин. Ово може ненамерно да омета друге програме да могу да користе генератор случајних семена током ваше употребе. Када покренете програм и добијете број, можете бити сигурни да ће функционисати и на овај начин:



ранНум = $ (($ (од -Ан -Н1 -ту1 / дев / урандом)))

Ово ће променљиву ранНум поставити на број између 1 и 256, изабран у тренутку када је покренете. Можете га покренути из командне линије или изнутра скрипте и требало би да функционише у сваком случају. Имајте на уму да ранНум можете заменити било којим важећим именом променљиве.

Метод 2: Постављање променљиве на случајни број између 1 и било чега

Можете покренути ецхо $ [РАНДОМ% 40 + 1] из командне линије да бисте послали случајни број између 1 и 40 равно на стандардни излаз, али такође можете да замените 40 у команди са практично било којим бројем. На крају ће архитектура вашег рачунара рачунара остати без цифара или можда басх, али сумња да вам је ионако потребан тако висок број.

Претпоставимо да желите да генеришете случајни број између 1 и 10 за вашу променљиву конфигурацију. Можете трчати:

ранНум = $ [СЛУЧАЈНИ% 10 + 1]

Имајте на уму да 10 можете заменити било којом горњом вредношћу коју желите. Ова вредност укључује, што значи да је 10 ваљана враћена цифра. Ако сте желели да га смањите за један, једноставно направите вредност 9 уместо да користите математику Ц или Ц ++ стил -1. Они су непотребни при подешавању променљиве помоћу ове методе и уствари ће генерисати неочекиване резултате додавањем или одузимањем цифара.

3. метод: Избор једног случајног бита

Ако требате да променљиву поставите на случајни бит или нула или један, тада ћете можда желети да измените претходни код на следећи начин:

ранНум = $ (($ (од -Ан -Н1 -и / дев / урандом)% 2))

Овај код ће ранНум поставити на 1 или 0, у зависности од тога да ли бројеви које је узорковао из / дев / урандом датотеке су биле парне или непарне. Ово може бити корисно ако треба да поставите једноставну једначину да или не у једно или друго стање.

Ако ово није довољно случајно за оно на чему радите, можда ћете добити мало случајнији број позивањем директорија / проц / сис / кернел / рандом са:

ранНум = $ ((0к $ (цут -ц1-1 / проц / сис / кернел / рандом / ууид)% 2))

Међутим, опет ћемо променом поставити само 1 или 0, што је савршено за бинарну логику, али није толико корисно за случајеве када ће вам можда требати дужи број. Међутим, можете користити било који од ових редова у басх скрипти ако вам је то било потребно. Ова друга опција би у ствари могла бити боља за ситуације када и прва закаже

Метод 4: Ауторизирање басх скрипти за враћање случајних бројева

Ако у било ком тренутку желите да имате практичан алат за генерисање случајних бројева, тада можете да креирате скрипту командне линије која ће то учинити. Ово не користи ништа више од стандардног басх језика који има већина савремених Линук упита, тако да би готово свака модерна Линук дистрибуција и поприлично оперативних система заснованих на БСД-у требали ово сасвим добро решити. Можда ћете желети да употребите цд ~ / .лоцал / бин пре него што наставите даље, како бисте били сигурни да ћете имати своју скрипту на месту на којем можете да је извршите са било ког места.

Унесите нано рандом или ви рандом да бисте започели, иако бисте за скрипту могли да користите друго име, ако желите. Можете да користите и други уређивач текста ако желите. Рецимо да сте желели да направите један који би враћао 1 или 0 када се упише у командну линију. Унесите следеће, а затим притисните Цтрл + О да бисте га сачували ако користите нано:

#! / бин / басх ранНум = $ (($ РАНДОМ% 2)) ецхо $ ранНум

Унесите Цтрл + Кс да бисте изашли из уређивача текста и једном када се вратите у командну линију користите цхмод + к рандом како бисте скрипту учинили употребљивом. Можете наравно користити ранНум = $ [РАНДОМ% 10 + 1], ранНум = $ (($ (од -Ан -Н1 -ту1 / дев / урандом))) или било коју другу линију уместо ранНум = $ (($ РАНДОМ% 2)) како бисте могли тачно да контролишете коју врсту броја желите назад. Рецимо да сте желели редовно да одаберете број између 1 и 50. Промените текст басх скрипте у:

#! / бин / басх ранНум = $ [РАНДОМ% 50 + 1] ецхо $ ранНум

Сада га можете лако покренути из командне линије тако што ћете откуцати случајно кад год желите да генеришете случајни број.

4 минута читања