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

function to get a random element of an array bash

我知道如何从这样的数组中获取随机项:

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

我显然可以对每个数组都这样做,就像驴子一样,但我想创建一个函数,它接受一个数组作为参数,returns 一个随机元素。

我正在尝试:

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

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

将您的函数更改为:

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

并将其命名为:

randArrayElement "ARRAYISO[@]"