2

我正在编写一个 bash 脚本,以基本上在 CPU 上播放石头剪刀布。我遇到的问题是我不能让它在变量之间随机选择,而是选择第一个变量。这是需要工作的代码部分:

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

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

4

2 回答 2

4
declare -a values=(rock paper scissors)
echo "${values[$(( $RANDOM % ${#values[*]} ))]}"
于 2012-07-18T15:25:34.253 回答
2

像这样的东西怎么样:

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

讨论

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

于 2012-07-18T15:29:26.477 回答