Acho que shuf
seria uma ferramenta melhor para esse fim.
Exemplo:
$ shuf -i 217-34523 -n 1
11623
Mas se você realmente quiser usar /dev/urandom
, isso deve funcionar:
random_numbers() {
a="$1"
b="$2"
lim="$3"
count="0"
while :; do
num=$(tr -dc '0-9\n' < /dev/urandom | grep -Pom1 "^\d{${#a},${#b}}")
if [ "$num" -ge "$a" ] && [ "$num" -le "$b" ]; then
echo "$num"
count="$((count + 1))"
[ "$count" -ge "$lim" ] && break
fi
done
}
Exemplo:
$ random_numbers 36856 76543 5
75544
55383
43024
72678
63635