Я пытаюсь создать генератор случайных чисел, который генерирует число от 1 до 99, но не любое число, которое уже было сгенерировано.
В скрипте array1 содержит уже сгенерированные числа.Чтобы облегчить тестирование, я уменьшил диапазон случайных чисел до 0 - 14 и вручную создал массив.
Я довольно новичок в bash-скриптинге и собираюсь поднять его с помощью пары книг и интернета.
Я испробовал смесь идей, одна из которых, кажется, имеет смысл
array1=( 1 2 3 6 7 8 9 10 11 12 13 )
func1() {
for var in "${array1[@]}"
do
echo $var
done
}
rnd=$[ $RANDOM % 14 ]
until [ $rnd != func1 ]
do
rnd=$[ $RANDOM % 14 ]
done
echo $rnd
однако я знаю, что проблема в строке 9, оболочка видит следующий код:
until [ $rnd != 1 2 3 6 7 8 9 10 11 12 13 ]
Я знаю, что решение заключается в том, что строка 9 должна быть:
until [ $rnd != 1 ] && [ $rnd != 2 ] && [ $rnd != 3 ] && ...
Я просто не знаю, как сделать это автоматически из массива.Длина массива зависит от количества сгенерированных чисел.
Любая помощь будет принята с благодарностью!