Estoy creando un bot en Shell Guión:Seleccione un elemento de azar de un conjunto
# 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
Quiero que imprime un artículo al azar de la expressions
cada segundo. Intenté esto pero no funciona. Solo imprime el primero (Ploink Poink) todo el tiempo. ¿Puede alguien ayudarme? Gracias
Tenga en cuenta que el código todavía se corregirá hacia los índices de matriz inferiores . – Joey
Es cierto. Sin embargo, a menos que su lista de expresiones sea muy larga, el efecto es menor. $ RANDOM es un número entre 0 y 32767. Supongamos que tiene 100 elementos en su lista. Los primeros 67 elementos tendrían una probabilidad de 328/32767 (.01001), mientras que los últimos 33 tendrían una probabilidad de 327/32767 (.00998). Para una lista más corta, la diferencia sería aún menor. Aún así, tiene un buen punto, y la función RANDOM de shell no es adecuada para situaciones en las que debe tener números verdaderamente aleatorios, como la criptografía. –