Zufallszahl in der Bash generieren
-
Verwenden der Variable
$RANDOM
zum Generieren von Zufallszahlen -
Verwendung des
shuf
-Befehls zum Generieren von Zufallszahlen -
Verwenden von
/dev/urandom
zum 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:
bashCopy$ echo $RANDOM
Ausgabe:
textCopy28091
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:
bashCopy$ echo $(( $RANDOM % 100 + 1 ))
Ausgabe:
textCopy19
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:
bashCopy$ shuf -i 0-100 -n1
Ausgabe:
textCopy76
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.
bashCopy$ shuf -i 0-100 -n5
Ausgabe:
textCopy68
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.
bashCopyod /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:
textCopy124
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.
bashCopyawk 'BEGIN{x=rand(); print x}'
Ausgabe:
textCopy0.444937