Иногда нужно сгенерировать последовательность чисел для хешей. Покажу вам 3 способа генерации последовательности чисел. Первый пример содержит цикл while. Подробно о цикле while написано в статье цикл while BASH
#!/bin/bash
# $RANDOM возвращает различные случайные числа при каждом обращении к ней.
# Диапазон изменения: 0 - 32767 (16-битовое целое со знаком).
MAXCOUNT=5
count=1
echo
echo "$MAXCOUNT случайных чисел:"
echo "-----------------"
while [ "$count" -le $MAXCOUNT ] # Генерация 10 ($MAXCOUNT) случайных чисел.
do number=$RANDOM
arr["$count"]=$number
echo $number
let "count += 1" # Нарастить счетчик.
done
echo "-----------------"
echo вывод: ${arr[1]}${arr[2]}${arr[3]}
#вывод:
5 случайных чисел:
-----------------
13580
14985
32135
20875
9387
-----------------
вывод: 135801498532135
В этом примере будут сгенерирована последовательность из 9 чисел.
#!/bin/bash
length=9
rand=`echo $RANDOM$RANDOM$RANDOM | cut -c1-$length`
echo генератор из $length чисел: $rand
echo $(($rand+1))
#вывод:
генератор из 9 чисел: 113561976
113561977
В этом примере получатся блоки по 5 чисел. Если вы несколько раз запустите скрипт, то увидите одну и туже последовательность чисел. Для генерации уникальных значений измените скрипт.
#!/bin/bash
# Длина генерируемой последовательности чисел.
MAXCOUNT=5
random_numbers ()
{
count=0
while [ "$count" -lt "$MAXCOUNT" ]
do
number=$RANDOM
echo -n "$number "
let "count += 1"
done
}
# Переустановка начального числа генератора случайных чисел RANDOM.
RANDOM=1
# вызов функции
random_numbers
# вывод:
16807 15089 11481 3114 14210