Generieren Sie eine Zufallszahl in Bash

Generieren Sie eine Zufallszahl in Bash
Die in jeder Skriptausführung geänderte Zahl wird als Zufallszahl bezeichnet und ist unvorhersehbar. Die Zufallszahlen werden in der Programmierung für verschiedene Zwecke verwendet, z. B. Testen von Daten, Generieren von Lotteriekarten, ein Kennwort usw. generieren usw. Die Ganzzahlnummer oder die schwimmende Nummer kann verwendet werden, um eine Zufallszahl in Bash zu generieren. Die zufällige Anzahl eines bestimmten Bereichs oder einer Größe kann mit einem Bash -Skript erzeugt werden. In diesem Tutorial wurden verschiedene Möglichkeiten zur Generierung von Zufallszahlen in Bash gezeigt.

Verwendung von Zufallsgenerator:

Die Zufallszahl oder ein Bereich von Zufallszahlen kann unter Verwendung der $ Random -Variablen generiert werden. Es generiert standardmäßig eine Zufallszahl zwischen 0 und 32767. Sie können jedoch den Zahlenbereich einstellen, um zufällige Zahlen zu generieren, indem Sie den Wert von $ random mit einem bestimmten Wert teilen. Verschiedene Verwendungen der $ -Zufallsvariablen zur Generierung von Zufallszahlen werden im nächsten Teil des Tutorials angezeigt.

Zufallszahlengenerierung unter Verwendung von $ Random Variable:

Die Möglichkeiten, die Zufallszahl im Terminal zu generieren und eine Skriptdatei auszuführen, werden hier angezeigt.

A. Generieren Sie zufällige Zahlen aus dem Terminal

Führen Sie den folgenden Befehl aus, um eine Zufallszahl innerhalb des Bereichs 0 bis 32767 zu generieren.

$ echo $ random

Sie können eine zufällige Anzahl eines bestimmten Bereichs generieren, indem Sie die $ -Randel -Variable mit einem bestimmten Wert dividieren und den Restwert erhalten. Führen Sie den folgenden Befehl aus, um eine Zufallszahl im Bereich von 1 bis 50 zu generieren. Hier wurden doppelte erste Klammern mit $ verwendet.

$ echo $ (($ random % 50 + 1))

Führen Sie den folgenden Befehl aus, um eine Zufallszahl im Bereich von 10 bis 40 zu generieren. Hier wurde die dritte Klammer mit $ verwendet.

$ echo $ [$ random % 40 + 10]

B. Generieren Sie zufällige Zahlen mit dem Skript

Erstellen Sie eine BASH -Datei mit dem folgenden Skript, um eine zufällige Anzahl des spezifischen Bereichs zu generieren, in dem die Werte minimaler und maximaler Bereich vom Benutzer entnommen werden. Es wird eine Fehlermeldung angezeigt, wenn der maximale Wert der Mindestwert kleiner als der Mindestwert ist. Wenn die Differenz zwischen dem Maximum und dem Mindestwert 1 beträgt, wird eine weitere Fehlermeldung angezeigt. In jeder Ausführung dieses Skripts wird eine Zufallszahl generiert, wenn die gültigen minimalen und maximalen Werte als Eingabe angenommen werden.

#!/Bin/Bash
# Generieren Sie einen vom Benutzer definierten zufällig basierten Bereich
#Nehmen Sie den unteren und den oberen Wert vom Benutzer ein
Echo "Geben Sie den Mindestwert ein:"
Minimum lesen
Echo "Geben Sie den Maximalwert ein:"
Maximum lesen
#Überprüfen Sie, ob die genommenen Werte gültig sind
Wenn [[$ maximal < $minimum ]]; then
Echo "Maximaler Wert kann nicht niedriger sein als der Minimalwert"
Ausgang 1
fi
#Finden Sie den Unterschied zwischen den Zahlen aus
Diff = $ (($ Maximum- $ minimal))
#Überprüfen Sie den Differenzwert
wenn [[$ diff == 1]]; Dann
echo "Der Zahlenbereich muss mehr als 1 sein"
Ausgang 1
fi
#Generieren die Zufallszahl
randomNumber = $ (($ minimum + $ random % $ maximum))
#Print der generierten Nummer
echo "Die generierte Zufallszahl ist: $ randomNumber"

Die folgende Ausgabe wird angezeigt, wenn das Skript mehrmals ausgeführt wird. Hier wurde das obige Skript dreimal ausgeführt. Die Fehlermeldung wurde für die ersten beiden Ausführungen für ungültige Eingaben gedruckt, und für die letzte Ausführung wurde eine Zufallszahl generiert.

Zufällige Zahlengenerierung mit 'shuf' Befehl:

Die Verwendung des Befehls "shuf" ist eine weitere Möglichkeit, die zufällige Anzahl eines bestimmten Bereichs zu generieren. Die Möglichkeiten, eine Zufallszahl aus dem Terminal zu generieren und ein Skript zu verwenden, wurden in diesem Tutorial gezeigt.

A. Generieren Sie zufällige Zahlen aus dem Terminal

Führen Sie den folgenden Befehl aus, um eine Zufallszahl zwischen 0 und 50 mit dem Befehl "shuf" zu generieren.

$ shuf -i 0-50 -n1

Nach der folgenden Ausgabe wurde der obige Befehl dreimal ausgeführt, und drei Zufallszahlen wurden generiert.

B. Generieren Sie zufällige Zahlen mit dem Skript

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, um eine Liste von Zufallsnummern basierend auf dem Eingabewert zu generieren. Die 'für' Schleife wurde verwendet, um den Befehl 'shuf' mehrmals auszuführen, um die Liste der Zufallszahlen zwischen 1 und 100 zu generieren und die Zahlen zu drucken.

#!/Bin/Bash
# Generieren Sie einen zufälligen Befehl 'shuf'
Echo "Wie viele zufällige Zahlen möchten Sie generieren??: "
Nummer lesen
#Print der generierten Zufallszahlen
echo "Die generierten Zufallszahlen sind:"
für n in 'seq "$ number' ''
Tun
randomNumber = $ (shuf -i 1-100 -n1)
Echo $ randomNumber
Erledigt

Die folgende Ausgabe zeigt, dass 5 als Eingangswert genommen wurde und 5 Zufallszahlen generiert wurden, die nicht mehr als 100 und nicht weniger als 1 sind.

Zufällige Zahlengenerierung mit /dev /urandom:

Das /Dev /Urandom kann mit verschiedenen Befehlen verwendet werden, um verschiedene Arten von Zufallswerten zu generieren. Es kann nicht verwendet werden, um die Bereichswerte wie den Befehl 'shuf' und die $ random -Variable anzugeben. Die Anzahl der Ziffern der Zufallszahl kann jedoch in Befehl mit /dev /urandom definiert werden. Die Verwendung des Befehls "OD" mit /dev /urandom hat im nächsten Teil dieses Tutorials gezeigt. Dieser Befehl kann verwendet werden, um die Anzahl der Bytes anzugeben, bei denen jedes Byte durch eine Dezimalzahl innerhalb von 0 bis 255 definiert werden kann.

Führen Sie den folgenden Befehl aus, um eine Zufallszahl zwischen 0 und 255 zu generieren.

$ od -a n -t d -n 1 /dev /urandom

Die Ausgabe zeigt, dass der obige Befehl dreimal ausgeführt wurde und hier drei verschiedene Zufallszahlen generiert wurden, bei denen die Werte nicht mehr als 255 sind.

Abschluss:

In diesem Tutorial wurden drei verschiedene Möglichkeiten zur Generierung von Zufallszahlen erläutert, indem verschiedene Beispiele verwendet wurden. Der Codierer kann einen bestimmten Bereich von Zufallszahlen erzeugen, indem der Befehl $ randoms randomy oder 'shuf' in Bash verwendet wird. Der Codierer kann /dev /urandom mit jedem anderen Befehl verwenden, um eine zufällige Anzahl bestimmter Bytes oder Längen zu generieren. Das Generieren von Zufallszahlen ist eine sehr häufige Voraussetzung für die Programmierung, und ich hoffe.