Jak nastavit proměnné bash na náhodná čísla



Vyzkoušejte Náš Nástroj Pro Odstranění Problémů

Můžete snadno vygenerovat náhodné číslo na výzvu bash, kterou můžete použít k nastavení uvedeného čísla jako proměnné. To je užitečné pro všechno, od psaní určitých typů skriptů po spuštění stolních roleplayingových dobrodružství. Ať už píšete kampaň D&D nebo vytváříte nástroj v mocném jazyce bash, obvykle vám bude stačit jediný řádek kódu. Toto je také velmi užitečný nástroj při pokusu o provedení určitých bezpečnostních kontrol, ale měli byste si pamatovat, že dobré crackery mohou tyto jednoduché generátory čísel obejít. Jsou stále užitečné pro generování určitých typů hesel a kódů, které by stejně mohly pomoci udržet věci v bezpečí.



Existuje několik různých způsobů, jak toho dosáhnout, a ne každá technika je vhodná pro každou situaci, proto jsme se snažili každou z těchto možností prohlédnout a vyzkoušet, zda to funguje. K tomu budete muset pracovat z terminálu, takže buď použijte Ctrl + Alt + T nebo Super (Windows) + T k otevření grafického terminálu, začněte tím, že napíšete terminál do Dash, vyberte jej z aplikace nebo Whisker a nabídky systémových nástrojů nebo se vydat do virtuálního terminálu vážně pomocí Ctrl, Alt a klávesy mezi F1 a F6.



Metoda 1: Výběr celého náhodného bajtu

Náhodné číslo od 1 do 256 můžete vygenerovat spuštěním následujícího příkazu přímo z příkazového řádku bash:



of -An -N1 -tu1 / dev / urandom

I když někdy můžete vidět, že tento příkaz odkazuje na / dev / random místo / dev / urandom, pravděpodobně nebudete chtít tento způsob spustit. To může neúmyslně připravit ostatní programy o možnost používat generátor náhodných semen během jeho používání. Jakmile program spustíte a získáte číslo, můžete si být jisti, že to bude fungovat i takto:



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

Tím nastavíte proměnnou ranNum na číslo mezi 1 a 256, vybrané v době jejího spuštění. Můžete jej spustit z příkazového řádku nebo zevnitř skriptu a mělo by fungovat oběma způsoby. Mějte na paměti, že ranNum můžete nahradit jakýmkoli platným názvem proměnné.

Metoda 2: Nastavení proměnné na náhodné číslo mezi 1 a jakýmkoli

Můžete spustit echo $ [RANDOM% 40 + 1] z příkazového řádku a odeslat náhodné číslo mezi 1 a 40 přímo na standardní výstup, ale můžete také nahradit 40 v příkazu prakticky libovolným číslem. Architektuře vašeho hostitelského počítače nakonec dojde číslice, nebo možná bash, ale je pochybné, že tak vysoké číslo stejně potřebujete.

Předpokládejme, že chcete pro svou proměnnou konfiguraci vygenerovat náhodné číslo mezi 1 a 10. Můžete spustit:

ranNum = $ [NÁHODNÉ% 10 + 1]

Mějte na paměti, že 10 můžete nahradit jakoukoli vyšší hodnotou, kterou chcete. Tato hodnota je inkluzivní, což znamená, že 10 je platný vrácený údaj. Pokud jste ji chtěli zmenšit o jednu, jednoduše použijte hodnotu 9 namísto použití matematiky ve stylu C nebo C ++ -1. Tyto jsou při nastavování proměnné pomocí této metody zbytečné a ve skutečnosti vygenerují neočekávané výsledky přidáním nebo odečtením číslic.

Metoda 3: Výběr jednoho náhodného bitu

Pokud potřebujete nastavit proměnnou na náhodný bit buď nula, nebo jedna, můžete chtít upravit předchozí kód následujícím způsobem:

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

Tento kód nastaví ranNum na 1 nebo 0 v závislosti na tom, zda čísla, z nichž se vzorkuje / dev / urandom složky byly sudé nebo liché. To může být užitečné, pokud potřebujete nastavit jednoduchou rovnici ano nebo ne do jednoho nebo druhého stavu.

Pokud to není dostatečně náhodné pro to, na čem pracujete, můžete získat o něco náhodnější číslo voláním do adresáře / proc / sys / kernel / random pomocí:

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

Znovu to však nastaví pouze proměnnou na 1 nebo 0, což je ideální pro binární logiku, ale ne tak užitečné pro časy, kdy budete potřebovat delší číslo. Pokud byste to však potřebovali, můžete použít některý z těchto řádků v bash skriptu. Tato druhá možnost může být ve skutečnosti lepší pro situace, kdy selže i první

Metoda 4: Tvorba bash skriptů pro vracení náhodných čísel

Pokud chcete mít kdykoli k dispozici užitečný nástroj pro generování náhodných čísel, můžete k tomu vytvořit skript příkazového řádku. To nevyužívá nic víc než standardní bash jazyk, který mají nejmodernější linuxové výzvy, takže by to téměř každá moderní linuxová distribuce a spousta operačních systémů založených na BSD měla zvládnout dobře. Než budete pokračovat, můžete použít cd ~ / .local / bin, abyste se ujistili, že máte skript na místě, kde jej můžete spustit odkudkoli.

Začněte zadáním nano random nebo vi random, i když pro skript můžete použít jiný název. Pokud chcete, můžete také použít jiný textový editor. Řekněme, že jste chtěli vytvořit takový, který po zadání na příkazovém řádku vrátí 1 nebo 0. Zadejte následující a poté stisknutím Ctrl + O uložte, pokud používáte nano:

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

Zadejte Ctrl + X pro ukončení textového editoru a po návratu na příkazový řádek použijte chmod + x random, aby byl váš skript použitelný. Samozřejmě můžete použít ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) nebo jakýkoli jiný řádek namísto ranNum = $ (($ RANDOM% 2)), abyste mohli přesně určit, jaké číslo chcete zpět. Řekněme, že jste chtěli pravidelně vybírat číslo od 1 do 50. Změňte text bash skriptu na:

#! / bin / bash ranNum = $ [NÁHODNÉ% 50 + 1] echo $ ranNum

Nyní jej můžete snadno spustit z příkazového řádku zadáním random, kdykoli budete chtít vygenerovat náhodné číslo.

4 minuty čtení