Zufallszahlen in der Bash-Shell erzeugen

Es gibt immer mal wieder einen Anwendungsfall, wo man eine Zufallszahl gebrauchen kann. Nun offenbart eine kurze Google-Suche jede Menge Webseiten, die eben diese online generieren können, aber mit der Bash geht’s genau so schnell und offline.

Linux hat dafür eine eigene Umgebungsvariable namens $RANDOM und die Nutzung ist recht einfach.

Ein einfaches

echo $RANDOM

gibt eine Zahl zwischen 0 und 32767 aus.

Um den Wertebereich einzuschränken, bietet sich die Modulo-Funktion an, möchte man also eine beliebige Zahl zwischen 0 und 9 haben, wäre die Syntax

echo $(($RANDOM % 10))

Die 10 ist übrigens kein Tippfehler, sondern korrekt, da die Modulo-Funktion den Rest nach der Division ausgibt und wenn man etwas durch 10 dividiert, kommen nun mal Reste zwischen 0 und 9 raus.

Wollen wir jetzt mal Lotto spielen (also einen Wertebereich zwischen 1 und 49 haben), dann kann man vielleicht so mit den richtigen Zahlen den Jackpot knacken.

echo $(($RANDOM % 49 + 1))

Ich dividiere also zunächst durch 49, wobei ich mögliche Werte für den Rest zwischen 0 und 48 erhalte. Diesen Wert erhöhe ich dann um 1, so dass ich den gewünschten Wertebereich erhalte.

Die ganz Faulen erzeugen natürlich alle sechs Zahlen auf einmal:

for i in {1..6}; do echo $(($RANDOM % 49 + 1)); done

Achso, bei mir sind die Zahlen 4, 18, 22, 28, 35 und 36 rausgekommen. Viel Glück!

1 Kommentar zu „Zufallszahlen in der Bash-Shell erzeugen“

  1. Echt klasse Beschreibung. Habe vorher mit Batch . bat gearbeitet .
    Bin bash Neuling .
    Sehr Ausfuehrlich und auch gut zu verstehen 😉 na fast erst mal daran gewoehnen .
    Aber schon mal vielen dank .

Kommentarfunktion geschlossen.