Magazine Internet

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

Publié le 29 novembre 2009 par Lb01

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

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 modifié par des opérations mathématiques pour donner notre nombre aléatoire !

Génération d’une date de naissance aléatoire

Voyons maintenant comment générer une date de naissance aléatoire grâce à notre petite formule.

Commençons par le plus facile, l’année et le mois. Il suffit de reprendre la formule présentée ci-dessus et d’y modifier les valeurs minimales et maximales :

yearMin=1900
yearMax=2008
year=$[($RANDOM % ($[$yearMax - $yearMin] + 1)) + $yearMin]
month=$[($RANDOM % ($[12 - 1] + 1)) + 1]

Et pour le jour alors ?

C’est déjà un peu plus compliqué, il faut connaître le dernier jour du mois (pour le max de notre formule) et il peut-être le 31, le 30, le 29 ou même le 28 !

Heureusement que, étant des lecteurs assidus de Tavuu.net, vous avez lu le dernier article intitulé « Trouver le dernier jour d’un mois en bash !« .

Il nous suffit donc de reprendre la formule présentée dans cet article et de l’adapter à notre code (tiens, c’est drôle, les variables correspondent déjà :-°) :

lastMonthDay=$(date -d "$year-$month-01 +1 month -1 day" +%d)

Il ne nous reste plus qu’à générer notre jour aléatoire :

day=$[($RANDOM % ($[$lastMonthDay - 1] + 1)) + 1]

Vous pouvez ensuite afficher votre date comme bon vous semble :

echo "$day/$month/$year"

Code final

Ce qui nous donne au final :

yearMin=1900
yearMax=2008
year=$[($RANDOM % ($[$yearMax - $yearMin] + 1)) + $yearMin]
month=$[($RANDOM % ($[12 - 1] + 1)) + 1]
day=$[($RANDOM % ($[$lastMonthDay - 1] + 1)) + 1]
echo "$day/$month/$year"

Source

Similar Posts:

Article original écrit par Leeroy pour T'as vuu ?. | Lien direct vers l'article | Réagir à l'article


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Mes manies de blogueuse

    Quand tu es blogueuse, y'a deux, trois choses qui changent dans ta vie. Ça va du truc banal, aux troubles obsessionnels du comportement. En voiture... Lire la suite

    Le 19 août 2014 par   Fay
    BEAUTÉ , BLOG, CÔTÉ FEMMES, INTERNET
  • Il prend un selfie dans le cratère d’un volcan en activité (Vidéo)

    La mode du selfie est omniprésente et chacun cherche à se montrer sous ses plus beaux atours. Les amoureux des sensations fortes n’y vont pas de main morte et... Lire la suite

    Le 09 septembre 2014 par   Chasseurbuzz
    INSOLITE, INTERNET, MARKETING & PUBLICITÉ, MÉDIAS, WEB2.0
  • 130 supports d’information online, proposés par la pharma

    En ce mois de reprise, je vous propose une mise à jour de mon panorama des réalisations digitales réalisées par l’industrie pharmaceutique. Lire la suite

    Le 08 septembre 2014 par   Fabricevezin
    INTERNET, SANTÉ, WEB2.0
  • Le côté obscur du hashtag

    Vous en avez mangé des quantités astronomiques jusqu’en juillet dernier. Vos amis aussi. Vous vous êtes gavé comme un chancre, à toutes les sauces, de... Lire la suite

    Le 16 septembre 2014 par   Tendancescom
    INTERNET, MÉDIAS
  • Les USA insolites

    Voici un article qui me trottait dans la tête depuis un moment. L’Amérique est la destination long-courrier privilégiée des... Lire la suite

    Le 12 août 2014 par   Valisefraise
    AMÉRIQUE DU NORD, BLOG, INTERNET, VOYAGES
  • Tweetons la science avec @EnDirectDuLabo !

    Aujourd’hui, en ce premier jour de septembre (ou en ce 14 Fructidor de l’An 212 selon votre calendrier) commence une toute nouvelle aventure : le compte... Lire la suite

    Le 01 septembre 2014 par   Valentine D.
    ENVIRONNEMENT, INTERNET, SCIENCE, SCIENCE & VIE
  • Les 10 déguisements les plus ridicules pour Halloween

    Halloween est à nos portes et chacun cherche à impressionner avec le meilleur des déguisements. Si certains respectent la tradition en optant pou... Lire la suite

    Le 16 septembre 2014 par   Chasseurbuzz
    INSOLITE, INTERNET, MARKETING & PUBLICITÉ, MÉDIAS, WEB2.0

Ajouter un commentaire

A propos de l’auteur


Lb01 13 votes Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazines