我有不同的数组,代表一个函数的选项。 我想将这些选项随机化。 我知道如何从这样的数组中获取随机项:
declare -a ARRAYISO=(100 200 400 800)
echo ${ARRAYISO["$[RANDOM % ${#ARRAYISO[@]}]"]}
我显然可以为每个数组执行此操作,例如驴,但我想创建一个函数,将数组作为参数并返回随机元素。
我这样想:
randArrayElement()
{
randElement=${$1["$[RANDOM % ${#$1[@]}]"]}
echo $randElement
}
randArrayElement ARRAYISO
但它不喜欢我的$ 1 ...我试过“,”,`,bash不解释$ 1 var ......
有人知道怎么做吗?
谢谢, 垫
答案 0 :(得分:3)
将您的功能更改为:
randArrayElement(){ arr=("${!1}"); echo ${arr["$[RANDOM % ${#arr[@]}]"]}; }
并将其命名为:
randArrayElement "ARRAYISO[@]"