Website-Suche

Generieren von Zufallszahlen in Bash mit Beispielen


Beim Codieren von Bash-Skripten – insbesondere bei der Entwicklung von Skripten für Funktionstests – müssen wir manchmal eine Zufallszahl oder eine zufällige Eingabe generieren. Diese Zahlen müssen möglicherweise auch innerhalb eines bestimmten Bereichs liegen. In diesem Artikel erfahren Sie, wie Sie die Generierung von Zufallszahlen in Bash durchführen.

In diesem Tutorial lernen Sie:

  • So generieren Sie Zufallszahlen in Bash
  • Wie man Zufallszahlen generiert, ist ein bestimmter Bereich
  • Beispiele für die Generierung von Zufallszahlen in Bash

Generieren von Zufallszahlen in Bash mit Beispielen

Verwendete Softwareanforderungen und Konventionen

Beispiel 1: Generieren einer Zufallszahl mit dem Zufallsgenerator

Generieren wir eine Zufallszahl in Bash:

echo $RANDOM
24758
echo $RANDOM
13

Das war einfach, nicht wahr?

Es gibt jedoch einige Herausforderungen bei diesem Ansatz. So wie es aussieht, ist es nicht sehr brauchbar: Die Zufallszahl könnte 1 oder 32000 sein. Bemerkenswert ist auch, dass die zurückgegebene Zahl zwar zufällig erscheint, aber tatsächlich davon beeinflusst wird, wie die zufällige Entropievariable (RANDOM=) initialisiert wird. Dies wird der Schwerpunkt eines anderen Artikels sein. Ein kurzes Beispiel dafür, wie Sie es zufälliger machen können, wäre;

RANDOM=1
echo $RANDOM
16807
RANDOM=1
echo $RANDOM
16807  
RANDOM=$(date +%s%N | cut -b10-19)
echo $RANDOM
18991
RANDOM=$(date +%s%N | cut -b10-19)
echo $RANDOM
11045

Beachten Sie, dass die Zufallszahl 16807 nicht wirklich zufällig ist, da der Zufallsgenerator mit der gleichen 1 gesetzt wurde.

Der Befehl RANDOM=$ (Datum +%s%N | Schnitt -b10-19) ist eine viel bessere Zufallsgenerator-Entropie-Seeder, die auf der Sekunden- und Nanosekundenzeit basiert.

Beispiel 2: Zahlen in einem Bereich

Das Auswählen von Zufallszahlen in einem Bereich ist einfach. Generieren wir eine Zufallszahl zwischen 1 und 113:

echo $(( $RANDOM % 113 + 1 ))
50
echo $(( $RANDOM % 113 + 1 ))
17
echo $(( $RANDOM % 113 + 1 ))
95

Und wir können auch eine alternative Syntax/einen alternativen Befehl verwenden. Dieses Mal werden wir eine Zufallszahl zwischen 1 und 117 generieren:

echo $[ $RANDOM % 117 + 1 ]
113
echo $[ $RANDOM % 117 + 1 ]
71
echo $[ $RANDOM % 117 + 1 ]
10

Um das Minimum eines bestimmten Bereichs zu erhöhen, können Sie einfach die +1 auf eine höhere Zahl erhöhen.

Bitte betrachten Sie das folgende Beispiel, bei dem Sie eine Zufallszahl zwischen 11 und 30 generieren:

echo $[ $RANDOM % 20 + 11 ]
21

Schlussfolgerung

In diesem Artikel haben wir gelernt, wie Sie in Bash eine Zufallszahl in einem beliebigen Bereich generieren können. Wir haben auch kurz angesprochen, wie die Zufälligkeit in Bash über einen Entropie-Seed-initialisierten Zufallsgenerator funktioniert.

Zeigen Sie uns einige Ihrer $RANDOM Kreationen in den Kommentaren unten! Genießen!

Verwandte Artikel: