从数组选择随机项目
问题描述:
我在Shell脚本创建一个机器人:
I'm creating a bot in Shell Script:
# 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
我想它打印从前pressions
每秒随机项。我试过,但它不工作。只打印第一个(Ploink Poink)每次。任何人都可以帮我吗?
谢谢
I want that it prints a random item from the expressions
every second. I tried this but it does not work. It only prints the first one (Ploink Poink) every time. Can anyone help me out?
Thanks
答
更改,可以定义selectedex pression到线
Change the line where you define selectedexpression to
selectedex pression = $ {EX pressions [$ RANDOM%$ {#前pressions [@]}]
}
您希望您的索引到前pression是一个随机数从0到EX pression数组的长度。这将这样做。
You want your index into expression to be a random number from 0 to the length of the expression array. This will do that.