Bonsoir à toutes et à tous.
Si vous gagnez une somme à la loterie à l'aide du script qui suit, soyez honnête et
envoyez-m'en 10 % comme droit d'auteur. Merci d'avance.
Christian
#!/bin/bash
# /opt/local/bin/649.sh # OU | OR # /root/my-applications/bin/649.sh
# Note : Utile pour toutes les loteries du même genre (6 numéros sur 49).
####
# © Christian L'Écuyer, Gatineau (Qc), Canada, GPL3. # D'ici à ce que je
# veuille être payé pour ! | # Until I want to be paid for it!
# (Alias musher0 [forum Puppy] ### 2018-04-25.
# ~~~~~~~ For EN, please see: https://opensource.org/licenses/GPL-3.0.
# Ce programme est libre : vous pouvez le redistribuer ou le modifier selon
# les termes de la Licence Publique Générale GNU publiée par la Free
# Sorftware Foundation (v. 3 ou toute version ultérieure choisie par vous).
# Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
# AUCUNE GARANTIE, ni explicite ni implicite, y compris de commercialisation
# ou d'adaptation à un but spécifique. Pour plus de détails, s.v.p. vous reporter
# au texte officiel à https://opensource.org/licenses/GPL-3.0, à sa traduction à
# http://www.linux-france.org/article/these/gpl.html et à l'explication à
# https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU.
# ~~~~~~~~~~~~~~ # set -xe
LC_ALL=C # Plus rapide ainsi. # LANGvx="$LANG";LANG=en_CA # For tests.
>649.tmp # Crée « récipient ».
Fois="";Fois="$1";[ "$1" = "" ] && Fois=6
# ~~~~~~~
# On peut indiquer cinq (5) comme paramètre de position 1 pour jouer à la loterie [size=1]québécoise
# « La Grande Vie », [/size][size=1]qui est une « 5/49 ».
# Mais le présent script choisit 6 chiffres par défaut.
# ~~~~~~~
for i in `seq $Fois`;do echo "$[$RANDOM % 49 + 1 ] " >> 649.tmp;done # Génération des chiffres.
sort -n -u 649.tmp > 649.lst # Tri.
m="`wc -l < 649.lst`" # Vérif. que la liste est complète.
until [ "$m" -eq "$Fois" ] # Si m=6, on passe, pas besoin.
do cp -f 649.lst 649.lst$m # copie de travail
echo "$[$RANDOM % 49 + 1 ]" >> 649.lst$m # On ajoute le nombre manquant.
sort -n -u 649.lst$m > 649.lst # On re-trie vers la liste principale.
m="`wc -l < 649.lst`" # On recommence jusqu'à ce qu'on ait $Fois chiffres.
done
echo # Display | Affichage,
case "${LANG:0:2}" in
fr)echo -en "\t\e[32mVos chiffres chanceux sont : \e[33m" ;; # avec un peu de couleur,
en|*)echo -en "\t\e[32mYour lucky numbers are:\e[33m " ;;
esac
paste -d' ' -s 649.lst # sur une ligne.
echo -e "\e[0m" # Enlèvons couleur.
rm -f 649.tmp;rm -f 649.ls* # Clean-up. | Nettoyage.
LC_ALL="" # Retour à la normale. # LANG="$LANGvx" # Pour tests. # set +xe
exit
# ~~~~~~~~~~~~~~
# Notes
# ~~~~
# shuf -i1-49 -n6 | sort -n | paste -d' ' -s # Équivalent, pour les non masos... !!!
# Source, relevée le 2018/04/12, 4 h 57 :
# https://stackoverflow.com/questions/21792673/using-bash-to-generate-lotto-numbers
# Mais on n'a pas shuf sur Puppy.
# ~~~~~~~~
# Autre générateur de nombre au hasard si $RANDOM n'est pas disponible :
# echo $(date +%s) % 49 + 1 | bc
# Source : https://stackoverflow.com/questions/8988824/
# generating-random-number-between-1-and-10-in-bash-shell-script
# en note à la réponse no 26. # Relevé le 2018/04/25 à 22h06.
# ~~~~~~~~~~~~~~