Выберите случайный объект из массива

Я создаю бота в Сценарии оболочки:

# Array with expressions
expressions=("Ploink Poink" "I Need Oil" "Some Bytes are Missing!" "Poink Poink" "Piiiip Beeeep!!" "Hello" "Whoops! I'm out of memmory!")

# Seed random generator
RANDOM=$$$(date +%s)

# Loop loop loop loop loop loop ...
while [ 1 ]
do
    # Get random expression...
    selectedexpression=${expressions[$RANDOM % ${#RANDOM[*]}]}

    # Write to Shell
    echo $selectedexpression


    # Wait an half hour
    sleep 1 # It's one second for debugging, dear SOers
done

Я хочу это, это печатает случайный объект от expressions каждую секунду. Я попробовал это, но это не работает. Это только печатает первый один (Ploink Poink) каждый раз. Кто-либо может выручить меня? Спасибо

49
задан 5 March 2010 в 07:08
поделиться

1 ответ

Измените строку, где вы определяете selectedexpression на

selectedexpression=${expressions[$RANDOM % ${#expressions[@]} ]}

Вы хотите, чтобы индекс в выражении был случайным числом от 0 до длины массива выражений. Это будет сделано.

81
ответ дан 7 November 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: