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



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

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

很明显,我可以像驴子一样对每个数组都这样做,但我想制作一个函数,它以数组为参数,并返回一个随机元素。

我正在尝试:

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

但它不喜欢我的1美元…我试过用",",bash不解释$1变量…

将函数更改为:

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

并称之为:

randArrayElement "ARRAYISO[@]"

最新更新