Générer un nombre aléatoire compris entre deux valeurs en Bash

Publié le 29 novembre 2009 par Lb01

Voici un petit bout de code bien pratique qui vous permet de générer un nombre aléatoire compris entre deux valeurs choisies.

Nous verrons aussi un exemple pratique d'utilisation avec la génération d'une date de naissance aléatoire !

Tout d'abord, voici le code en version longue qui va générer un nombre aléatoire compris entre 100 et 200 :

min=100
    max=200
    number=$[($RANDOM % ($[$max - $min] + 1)) + $min]
    echo $number

Il peut aussi être écrit en version courte :

echo $[($RANDOM % ($[200 - 100] + 1)) + 100]

Voilà ! Rien de bien compliqué ici : la fonction $RANDOM native de BASH va générer un nombre pseudo aléatoire entre 0 et 32767 qui va ensuite être transformé (grâce au modulo) pour donner notre nombre aléatoire !