Wie generiert man in der Bash eine Zufallszahl innerhalb eines Bereichs?
Antworten
Zu viele Anzeigen?Utilice $RANDOM
. Sie ist oft in Kombination mit einfacher Shell-Arithmetik nützlich. Zum Beispiel, um eine Zufallszahl zwischen 1 und 10 (einschließlich) zu erzeugen:
$ echo $((1 + $RANDOM % 10))
3
Der eigentliche Generator befindet sich in variables.c
die Funktion brand()
. Ältere Versionen waren ein einfacher linearer Generator. Version 4.0 von bash
verwendet eine Generator mit Zitierfunktion auf ein Papier von 1985, was vermutlich bedeutet, dass es eine gute Quelle für Pseudozufallszahlen ist. Ich würde es nicht für eine Simulation verwenden (und schon gar nicht für Krypto), aber für grundlegende Skripting-Aufgaben ist es wahrscheinlich ausreichend.
Wenn Sie etwas tun, das ernsthafte Zufallszahlen erfordert, können Sie /dev/random
o /dev/urandom
wenn sie verfügbar sind:
$ dd if=/dev/urandom count=4 bs=1 | od -t d
Siehe bitte $RANDOM
:
$RANDOM
ist eine interne Bash-Funktion (keine Konstante), die eine pseudozufällige Ganzzahl im Bereich 0 - 32767. Sie sollte nicht verwendet werden, um einen Verschlüsselungsschlüssel zu erzeugen.
- See previous answers
- Weitere Antworten anzeigen