Random generator improvements
This commit is contained in:
parent
bbfa4c9d3b
commit
65d4c3c3ff
|
@ -1,7 +1,7 @@
|
|||
#!/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
|
||||
|
||||
#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
|
||||
|
||||
####################################################################################################################################################################
|
||||
|
@ -114,7 +114,31 @@ else
|
|||
fi
|
||||
|
||||
#### 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 {
|
||||
local digits="${1}" # The number of digits to generate
|
||||
local number
|
||||
|
|
Loading…
Reference in New Issue