函数获取数组bash的随机元素

时间:2015-02-16 15:14:43

标签: arrays bash random

我有不同的数组,代表一个函数的选项。 我想将这些选项随机化。 我知道如何从这样的数组中获取随机项:

declare -a ARRAYISO=(100 200 400 800)
echo ${ARRAYISO["$[RANDOM % ${#ARRAYISO[@]}]"]}

我显然可以为每个数组执行此操作,例如驴,但我想创建一个函数,将数组作为参数并返回随机元素。

我这样想:

randArrayElement()
{
    randElement=${$1["$[RANDOM % ${#$1[@]}]"]} 
    echo  $randElement
}
randArrayElement ARRAYISO

但它不喜欢我的$ 1 ...我试过“,”,`,bash不解释$ 1 var ......

有人知道怎么做吗?

谢谢, 垫

1 个答案:

答案 0 :(得分:3)

将您的功能更改为:

randArrayElement(){ arr=("${!1}"); echo ${arr["$[RANDOM % ${#arr[@]}]"]}; }

并将其命名为:

randArrayElement "ARRAYISO[@]"