我知道如何从这样的数组中获得随机项:
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[@]"