Wie man bash Variablen auf zufällige Zahlen setzt

Sie können einfach eine Zufallszahl an der Bash-Eingabeaufforderung generieren, die Sie dann verwenden können, um diese Zahl als Variable festzulegen. Dies ist nützlich, wenn Sie bestimmte Arten von Skripten in laufende Tabletop-Rollenspielabenteuer schreiben möchten. Ganz gleich, ob Sie eine D & D-Kampagne schreiben oder ein Utility in der mächtigen Bash-Sprache verfassen, Sie könnten normalerweise mit einer einzigen Codezeile davonkommen. Dies ist auch ein sehr nützliches Werkzeug, wenn Sie versuchen, bestimmte Sicherheitsprüfungen durchzuführen, aber Sie sollten sich 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 erzeugen, die helfen könnten, die Dinge trotzdem sicher zu halten.

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

Methode 1: Auswählen eines vollständigen Zufallsbytes

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

od -An-N1 -tu1 / dev / urandom

Während Sie diesen Befehl manchmal auf / dev / random anstatt auf / dev / urandom verweisen, werden Sie diesen Weg wahrscheinlich nicht nutzen wollen. Dies kann unbeabsichtigt andere Programme davon abhalten, den Zufallsgeneratorengenerator während Ihrer 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 festgelegt, die zum Zeitpunkt der Ausführung ausgewählt wird. Sie können es von der Befehlszeile oder von innerhalb eines Skripts ausführen, und es sollte in beide Richtungen funktionieren. Denken Sie daran, dass Sie ranNum durch einen gültigen Variablennamen ersetzen können.

Methode 2: Festlegen einer Variablen auf eine zufällige Zahl zwischen 1 und was auch immer

Sie können echo $ [RANDOM% 40 + 1] von der Befehlszeile ausführen, um eine Zufallszahl zwischen 1 und 40 direkt an die Standardausgabe zu senden, aber Sie können auch die 40 im Befehl durch eine beliebige Zahl ersetzen. Irgendwann wird die Architektur Ihres Host-Rechners keine Ziffern mehr haben oder vielleicht Bash werden, aber es ist zweifelhaft, dass Sie sowieso eine so hohe Zahl brauchen.

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

ranNum = $ [ZUFALL% 10 + 1]

PRO TIPP: Wenn das Problem bei Ihrem Computer oder Laptop / Notebook auftritt, sollten Sie versuchen, die Reimage Plus Software zu verwenden, die die Repositories durchsuchen und beschädigte und fehlende Dateien ersetzen kann. Dies funktioniert in den meisten Fällen, in denen das Problem aufgrund einer Systembeschädigung auftritt. Sie können Reimage Plus herunterladen, indem Sie hier klicken

Denken Sie daran, dass Sie 10 mit dem gewünschten 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 wollten, dann stellen Sie einfach den Wert 9 ein, anstatt C- oder C ++ - 1-Mathematik zu verwenden. Diese sind nicht notwendig, wenn Sie eine Variable mit dieser Methode setzen, und sie erzeugen tatsächlich unerwartete Ergebnisse, indem Sie Ziffern addieren oder subtrahieren.

Methode 3: Auswählen eines einzelnen zufälligen Bit

Wenn Sie eine Variable auf ein zufälliges Bit von entweder Null oder Eins festlegen 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 auf 1 oder 0, je nachdem, ob die Zahlen, die er aus der Datei / dev / urandom abgetastet hat, gerade oder ungerade waren. Dies kann nützlich sein, wenn Sie eine einfache Ja oder Nein-Gleichung auf den einen oder anderen Zustand setzen müssen.

Wenn das für den Vorgang, an dem Sie gerade arbeiten, nicht genügend zufällig ist, erhalten Sie möglicherweise eine etwas zufällige Zahl, indem Sie einen Aufruf an das Verzeichnis / proc / sys / kernel / random mit folgendem Befehl machen:

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

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

Methode 4: Erstellen von Bash-Skripts zum Zurückgeben von Zufallszahlen

Wenn Sie jederzeit ein praktisches Werkzeug zum Generieren einer Zufallszahl haben möchten, können Sie dazu ein Befehlszeilenskript erstellen. Dies verwendet nicht mehr als die Standard-Bash-Sprache, die modernste Linux-Aufforderungen haben, so ziemlich jede moderne Linux-Distribution und einige der BSD-basierten Betriebssysteme sollten damit gut umgehen. Vielleicht möchten Sie cd ~ / .local / bin verwenden, bevor Sie weitermachen, um sicherzustellen, dass Sie Ihr Skript an einem Ort haben, an dem Sie es von überall ausführen können.

Geben Sie nano random oder vi random ein, um zu beginnen. Sie können jedoch auch einen anderen Namen für Ihr Skript verwenden, wenn Sie möchten. Sie könnten auch einen anderen Texteditor verwenden, wenn Sie möchten. Nehmen wir an, Sie wollten einen erstellen, der bei der Eingabe an der 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

Tippe Strg + X, um den Texteditor zu verlassen. Einmal in der Befehlszeile, benutze chmod + x random, um dein Skript nutzbar zu machen. Sie könnten natürlich ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) oder eine andere Zeile anstelle von ranNum = $ (($ RANDOM% 2)), so dass Sie genau kontrollieren können, welche Art von Nummer Sie zurück wollen. Angenommen, Sie wollten 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 nun einfach über die Befehlszeile ausführen, indem Sie random eingeben, wenn Sie eine Zufallszahl generieren möchten.

PRO TIPP: Wenn das Problem bei Ihrem Computer oder Laptop / Notebook auftritt, sollten Sie versuchen, die Reimage Plus Software zu verwenden, die die Repositories durchsuchen und beschädigte und fehlende Dateien ersetzen kann. Dies funktioniert in den meisten Fällen, in denen das Problem aufgrund einer Systembeschädigung auftritt. Sie können Reimage Plus herunterladen, indem Sie hier klicken

Facebook Twitter Google Plus Pinterest