I wanted to have a bash script which would be able to give lottery numbers. Unfortunately it never gives the good one...
#! /bin/bash
# autolottery.sh version 1.0
# 2019.03.01 shebangthedolphins.net first version
#---------------------------------------------------
# this script automatically give (the wrong) lottery numbers. You can even set your own ones.
# it will gives 5 differents number from 1 to 49. And 1 complementary number from 1 to 10.
#---------------------------------------------------
#! /bin/sh
#Set variables
array=()
same="0"
#The script will ask if you have your own numbers to give
read -e -p "Give me manual numbers if you have some : " -a numbers #-a allows to put numbers into array
for manual_num in "${numbers[@]}"
do
#"if" to put a 0 before numbers which are less than 10
if [ "$manual_num" -lt 10 ]; then
manual_num=0$manual_num
fi
array+=($manual_num) #add manual numbers to our array
done
#We need 5 numbers from 1 to 50
while [ "${#array[*]}" -ne 5 ]
do
num=$RANDOM
let 'num %= 50'
same="0"
for index in "${array[@]}"
do
if [ "$num" == "$index" ] || [ "$num" == "0" ] || [ 0"$num" == "$index" ] #if the number is equal to 0 or has already been proposed we exit the loop
then
same="1" #we put the flag same to 1
break #exit the loop
fi
done
#"if" to put a 0 before numbers which are less than 10
if [ "$same" == "0" ] #if the number hasn't already been proposed
then
if [ "$num" -lt 10 ]; then
num=0$num
fi
array+=($num) #add to our array
fi
done
#allows to sort the numbers (https://stackoverflow.com/questions/7442417/how-to-sort-an-array-in-bash)
IFS=$'\n' sorted=($(sort <<<"${array[*]}"))
echo "Losing numbers are : "
for index in "${sorted[@]}"
do
echo "$index"
done
echo "Complementary number is : "
num="0"
while [ "$num" == "0" ]
do
num=$RANDOM
let 'num %= 11'
done
echo "$num"
unset IFS
Contact :