Bash随机化变量

时间:2012-07-18 15:20:03

标签: bash variables random

我正在研究一个bash脚本,基本上可以针对CPU播放Rock Paper Scissors。 我遇到的问题是我不能让它在变量之间随机选择,而只是选择注意到的第一个变量。以下是需要工作的代码部分:

r="rock"
p="paper"
s="scissors"
RPS=$r||$p||$s    #The line that needs to be fixed
#rps=$r||$p||$s works but only outputs rock...
echo $RPS

我已经尝试在论坛上寻找方法,但谷歌只会弹出论坛,随机从另一个文件中挑选行而不是文件本身。

2 个答案:

答案 0 :(得分:4)

declare -a values=(rock paper scissors)
echo "${values[$(( $RANDOM % ${#values[*]} ))]}"

答案 1 :(得分:2)

这样的事情怎么样:

choices=(rock paper cissors) # Define an array with 3 choices
RPS=${choices[$RANDOM%3]}    # Pick one at random

讨论

Bash有一个名为$ RANDOM的内置变量,它返回一个随机整数。