So setzen Sie Bash-Variablen auf Zufallszahlen
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.