training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как сгенерировать последовательность чисел random BASH

Создано: 12 мая 2017Автор: Егор Астапов2175 просмотровСложность: легкий

Иногда нужно сгенерировать последовательность чисел для хешей. Покажу вам 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

Комментарии

реклама