Unix - выбор рандома из массивов таблиц в Unix - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь выбрать случайные данные из таблицы и распечатать их, вот как бы я это себе представлял:

Ids = {"1","2","3"}

echo $(($RANDOM % $Ids))

Хотя я получаю сообщение об ошибке, я делаю это неправильно

1 Ответ

0 голосов
/ 25 марта 2020

Вы неправильно создаете массив. Если используемая оболочка поддерживает его, вы можете сделать следующее:

Ids=( 1 2 3 )
echo "${Ids[$RANDOM % ${#Ids}]}"

Обратите внимание, что вы используете () для создания массива, и не должно быть пробелов вокруг =. Когда вы пишете $Ids, это дает вам первый элемент массива, поэтому $(( $RANDOM % $Ids )) вычисляет $RANDOM % 0, поэтому я предполагаю, что вы получаете ошибки, подобные 28072 % 0: division by 0. Это помогло бы, если бы вместо невзрачного "I" Я получаю сообщение об ошибке ", вы указали, какую ошибку вы получаете.

...