mat*_*ieu 3 arrays random bash
我知道如何从这样的数组中获取随机项:
declare -a ARRAYISO=(100 200 400 800)
echo ${ARRAYISO["$[RANDOM % ${#ARRAYISO[@]}]"]}
Run Code Online (Sandbox Code Playgroud)
显然,我可以像驴一样对每个数组执行此操作,但我想创建一个函数,它将数组作为参数并返回随机元素。
我正在尝试:
randArrayElement() {
randElement=${$1["$[RANDOM % ${#$1[@]}]"]}
echo $randElement
}
randArrayElement ARRAYISO
Run Code Online (Sandbox Code Playgroud)
但它不喜欢我的 $1...我尝试过 ", ', ` ,bash 不解释 $1 var...
将您的功能更改为:
randArrayElement(){ arr=("${!1}"); echo ${arr["$[RANDOM % ${#arr[@]}]"]}; }
Run Code Online (Sandbox Code Playgroud)
并将其称为:
randArrayElement "ARRAYISO[@]"
Run Code Online (Sandbox Code Playgroud)