Random generator improvements
This commit is contained in:
parent
bbfa4c9d3b
commit
65d4c3c3ff
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
## Generic and highly portable bash functions written in 2013-2018 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr
|
## Generic and highly portable bash functions written in 2013-2018 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr
|
||||||
|
|
||||||
#TODO: ExecTasks postponed arrays / files grow a lot. Consider having them "rolling"
|
#TODO: ExecTasks postponed arrays / files grow a lot. Consider having them "rolling" (cleaned at numberOfEvents)
|
||||||
#TODO: command line arguments don't take -AaqV for example
|
#TODO: command line arguments don't take -AaqV for example
|
||||||
|
|
||||||
####################################################################################################################################################################
|
####################################################################################################################################################################
|
||||||
|
@ -114,7 +114,31 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#### PoorMansRandomGenerator SUBSET ####
|
#### PoorMansRandomGenerator SUBSET ####
|
||||||
# Get a random number on Windows BusyBox alike, also works on most Unixes
|
# Get a random number on Windows BusyBox alike, also works on most Unixes that have dd, if dd is not found, then return $RANDOM
|
||||||
|
function PoorMansRandomGenerator {
|
||||||
|
local digits="${1}" # The number of digits to generate
|
||||||
|
local number
|
||||||
|
local isFirst=true
|
||||||
|
|
||||||
|
if type dd >/dev/null 2>&1; then
|
||||||
|
|
||||||
|
# Some read bytes can't be used, se we read twice the number of required bytes
|
||||||
|
dd if=/dev/urandom bs=$digits count=2 2> /dev/null | while read -r -n1 char; do
|
||||||
|
if [ $isFirst == false ] || [ $(printf "%d" "'$char") != "0" ]; then
|
||||||
|
number=$number$(printf "%d" "'$char")
|
||||||
|
isFirst=false
|
||||||
|
fi
|
||||||
|
if [ ${#number} -ge $digits ]; then
|
||||||
|
echo ${number:0:$digits}
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
elif [ "$RANDOM" -ne 0 ]; then
|
||||||
|
echo $RANDOM
|
||||||
|
else
|
||||||
|
Logger "Cannot generate random number." "ERROR"
|
||||||
|
fi
|
||||||
|
}
|
||||||
function PoorMansRandomGenerator {
|
function PoorMansRandomGenerator {
|
||||||
local digits="${1}" # The number of digits to generate
|
local digits="${1}" # The number of digits to generate
|
||||||
local number
|
local number
|
||||||
|
|
Loading…
Reference in New Issue