So setzen Sie Bash-Variablen auf Zufallszahlen


Sie können einfach an der Bash-Eingabeaufforderung eine Zufallszahl generieren, mit der Sie diese Zahl als Variable festlegen können. Dies ist nützlich für alles, vom Schreiben bestimmter Arten von Skripten bis zum Ausführen von Tabletop-Rollenspiel-Abenteuern. Unabhängig davon, ob Sie eine D & D-Kampagne schreiben oder ein Dienstprogramm in der leistungsstarken Bash-Sprache erstellen, können Sie normalerweise mit einer einzigen Codezeile davonkommen. Dies ist auch ein sehr nützliches Werkzeug, wenn Sie versuchen, bestimmte Sicherheitsüberprüfungen durchzuführen. Sie sollten sich jedoch daran erinnern, dass gute Cracker diese einfachen Zahlengeneratoren umgehen können. Sie sind immer noch nützlich, um bestimmte Arten von Passwörtern und Code zu generieren, was dazu beitragen kann, die Sicherheit trotzdem zu gewährleisten.

Es gibt verschiedene Möglichkeiten, dies zu erreichen, und nicht jede Technik ist für jede Situation geeignet. Deshalb haben wir unser Bestes getan, um uns jeden Weg anzusehen und ihn zu testen, um sicherzustellen, dass er funktioniert. Sie müssen dafür von einem Terminal aus arbeiten. Verwenden Sie also entweder Strg + Alt + T oder Super (Windows) + T, um ein grafisches Terminal zu öffnen. Beginnen Sie eines, indem Sie im Dash das Terminal eingeben und es in der Anwendung oder im Whisker auswählen und System Tools-Menüs oder gehen Sie ernsthaft zu einem virtuellen Terminal, indem Sie Strg, Alt und eine Taste zwischen F1 und F6 verwenden.

Methode 1: Auswählen eines vollständigen zufälligen Bytes

Sie können eine Zufallszahl zwischen 1 und 256 generieren, indem Sie den folgenden Befehl direkt an der Bash-Eingabeaufforderung ausführen:

od -An -N1 -tu1 / dev / urandom

Obwohl dieser Befehl manchmal auf / dev / random anstelle von / dev / urandom verweist, möchten Sie ihn wahrscheinlich nicht auf diese Weise ausführen. Dies kann anderen Programmen unbeabsichtigt die Möglichkeit nehmen, den Zufallsgenerator während der Verwendung zu verwenden. Sobald Sie das Programm ausgeführt und eine Nummer erhalten haben, können Sie sicher sein, dass es auch so funktioniert:

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

Dadurch wird die Variable ranNum auf eine Zahl zwischen 1 und 256 gesetzt, die zum Zeitpunkt der Ausführung ausgewählt wurde. Sie können es über die Befehlszeile oder innerhalb eines Skripts ausführen und es sollte in beiden Fällen funktionieren. Beachten Sie, dass Sie ranNum durch einen beliebigen gültigen Variablennamen ersetzen können.

Methode 2: Festlegen einer Variablen auf eine Zufallszahl zwischen 1 und was auch immer

Sie können echo $ ausführen[RANDOM%40+1] Über die Befehlszeile können Sie eine Zufallszahl zwischen 1 und 40 direkt an die Standardausgabe senden. Sie können jedoch auch die 40 im Befehl durch praktisch eine beliebige Zahl ersetzen. Irgendwann werden die Architektur Ihres Host-Computers keine Ziffern mehr haben oder vielleicht auch Bash, aber es ist zweifelhaft, ob Sie trotzdem eine so hohe Zahl benötigen.

Angenommen, Sie möchten eine Zufallszahl zwischen 1 und 10 für Ihre Variablenkonfiguration generieren. Sie könnten laufen:

ranNum = $[RANDOM%10+1]

Denken Sie daran, dass Sie 10 durch einen beliebigen oberen Wert ersetzen können. Dieser Wert ist inklusive, was bedeutet, dass 10 eine gültige zurückgegebene Zahl ist. Wenn Sie es um eins reduzieren möchten, geben Sie einfach den Wert 9 ein, anstatt die Mathematik C oder C ++ im Stil -1 zu verwenden. Diese sind beim Festlegen einer Variablen mit dieser Methode nicht erforderlich und führen durch Hinzufügen oder Subtrahieren von Ziffern zu unerwarteten Ergebnissen.

Methode 3: Auswahl eines einzelnen Zufallsbits

Wenn Sie eine Variable auf ein zufälliges Bit von Null oder Eins setzen müssen, möchten Sie möglicherweise den vorherigen Code wie folgt ändern:

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

Dieser Code setzt ranNum entweder auf 1 oder 0, je nachdem, ob die Zahlen, die er abgetastet hat, aus dem / dev / urandom Datei waren gerade oder ungerade. Dies kann nützlich sein, wenn Sie eine einfache Ja- oder Nein-Gleichung für den einen oder anderen Zustand festlegen müssen.

Wenn dies für Ihre Arbeit nicht zufällig genug ist, erhalten Sie möglicherweise eine etwas zufälligere Zahl, wenn Sie das Verzeichnis / proc / sys / kernel / random aufrufen mit:

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

Wiederum wird dadurch nur die Variable auf 1 oder 0 gesetzt, was perfekt für die binäre Logik ist, aber nicht so nützlich für Zeiten, in denen Sie möglicherweise eine längere Zahl benötigen. Sie können jedoch jede dieser Zeilen in einem Bash-Skript verwenden, wenn Sie dies benötigen. Diese zweite Option ist möglicherweise besser für Situationen, in denen die erste ebenfalls fehlschlägt

Methode 4: Erstellen von Bash-Skripten zur Rückgabe von Zufallszahlen

Wenn Sie jederzeit ein praktisches Tool zum Generieren einer Zufallszahl haben möchten, können Sie dazu ein Befehlszeilenskript erstellen. Dies verwendet nichts weiter als die Standard-Bash-Sprache, die die meisten modernen Linux-Eingabeaufforderungen haben. Daher sollte so ziemlich jede moderne Linux-Distribution und einige der BSD-basierten Betriebssysteme damit gut umgehen können. Möglicherweise möchten Sie cd ~ / .local / bin verwenden, bevor Sie fortfahren, um sicherzustellen, dass Sie Ihr Skript an einem Ort haben, an dem Sie es von überall ausführen können.

Geben Sie zunächst nano random oder vi random ein, obwohl Sie für Ihr Skript auch einen anderen Namen verwenden können, wenn Sie möchten. Sie können auch einen anderen Texteditor verwenden, wenn Sie dies bevorzugen. Angenommen, Sie möchten eine erstellen, die bei Eingabe über die Befehlszeile entweder 1 oder 0 zurückgibt. Geben Sie Folgendes ein und drücken Sie Strg + O, um es zu speichern, wenn Sie Nano verwenden:

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

Geben Sie Strg + X ein, um den Texteditor zu verlassen, und verwenden Sie chmod + x random, um Ihr Skript verwendbar zu machen. Sie können natürlich ranNum = $ verwenden[RANDOM%10+1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) oder eine andere Zeile anstelle von ranNum = $ (($ RANDOM% 2)), damit Sie genau steuern können, welche Art von Nummer Sie verwenden Ich würde zurück wollen. Angenommen, Sie möchten regelmäßig eine Zahl zwischen 1 und 50 auswählen. Ändern Sie den Text des Bash-Skripts in:

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

Sie können es jetzt einfach über die Befehlszeile ausführen, indem Sie zufällig eingeben, wann immer Sie eine Zufallszahl generieren möchten.


0 Comments

Kommentar verfassen