Zufallszahl in der Bash generieren
-
Verwenden der Variable
$RANDOMzum Generieren von Zufallszahlen -
Verwendung des
shuf-Befehls zum Generieren von Zufallszahlen -
Verwenden von
/dev/urandomzum Generieren von Zufallszahlen - Verwenden von Awk zum Generieren von Zufallszahlen
In Bash kann eine Ganzzahl oder Float verwendet werden, um eine Zufallszahl zu erzeugen. Ein Bash-Skript kann verwendet werden, um eine Zufallszahl innerhalb eines bestimmten Bereichs oder einer bestimmten Größe zu erstellen. Dieser Artikel zeigt verschiedene Methoden zum Generieren von Zufallszahlen in Bash.
Hinweis: Sie erhalten möglicherweise unterschiedliche Zufallszahlen, wenn Sie die folgenden Befehle ausführen.
Verwenden der Variable $RANDOM zum Generieren von Zufallszahlen
Die Variable $RANDOM kann verwendet werden, um eine Zufallszahl oder einen Bereich von Zufallswerten zwischen 0 und 32767 zu erzeugen. Sie können jedoch den Zahlenbereich einschränken, der zum Generieren von Zufallszahlen verwendet wird, indem Sie den Wert $RANDOM durch einen bestimmten Wert dividieren.
Verwenden Sie den folgenden Befehl, um eine Zufallszahl zwischen 0 und 32767 zu erzeugen:
$ echo $RANDOM
Ausgabe:
28091
Sie können eine Zufallszahl aus einem bestimmten Bereich erzeugen, indem Sie die Variable $RANDOM durch den verbleibenden Wert teilen. Es enthält doppelte erste Klammern (()) mit einem $-Symbol.
Verwenden Sie den folgenden Befehl, um eine Zufallszahl zwischen 1 und 100 zu erzeugen:
$ echo $(( $RANDOM % 100 + 1 ))
Ausgabe:
19
Da das Prozentzeichen die mathematische Operation modulo zum Scheitern bringt, wird die Zahl 100 nie erreicht (Rest nach Division). Wenn der Zufallsgenerator den Wert 100 zurückgeben würde, würde die Modulo-Operation den Wert 0 liefern.
Verwendung des shuf-Befehls zum Generieren von Zufallszahlen
Mit dem Befehl shuf können Sie in einem Shell-Skript zahlreiche Zahlen erzeugen.
Der folgende Befehl erstellt eine einzelne Ganzzahl zwischen 0 und 100:
$ shuf -i 0-100 -n1
Ausgabe:
76
Im obigen Befehl bezeichnet -i den Eingabebereich und -n die Kopfzahl. Auf die Taste -n folgt eine beliebige positive Zahl, die die Zahl angibt, um Zufallszahlen zu erzeugen. Führen Sie den folgenden Befehl aus, um fünf Zufallszahlen zwischen 0 und 100 zu drucken.
$ shuf -i 0-100 -n5
Ausgabe:
68
78
24
76
41
Verwenden von /dev/urandom zum Generieren von Zufallszahlen
Mit der Gerätedatei /dev/urandom können Sie Pseudozufallszahlen erzeugen, die viel zufälliger sind als die Variable $RANDOM. Diese Zahlen in einem Skript in Variablen zu packen, erfordert jedoch weitere Arbeit, wie zum Beispiel das Filtern über od, wie im Beispiel gezeigt.
od /dev/urandom -A n -t d -N 1
Die Option -t d gibt an, dass als Ausgabeformat vorzeichenbehaftete Dezimalzahlen verwendet werden sollen, und -N 1 weist das Programm an, ein Byte aus /dev/urandom zu holen.
Ausgabe:
124
Verwenden von Awk zum Generieren von Zufallszahlen
Die Funktion rand() von awk gibt eine zufällige Gleitkommazahl im Bereich von 0 - 1 zurück. Die auf BEGIN folgenden Befehle werden vor dem nächsten Schritt ausgeführt.
awk 'BEGIN{x=rand(); print x}'
Ausgabe:
0.444937