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

标签 arrays bash random

<分区>

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

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

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

我正在尝试:

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

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

最佳答案

将您的功能更改为:

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

并将其命名为:

randArrayElement "ARRAYISO[@]"

关于arrays - 获取数组 bash 的随机元素的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28544522/

相关文章:

random - linux/dev/urandom 前向预测

linux - Bash:文本格式

perl - 加载 perl 模块时只调用一次 srand

java - 基本 Java 数组 - 输出

javascript - 如何根据对象的id获取数据

linux - *nix 方法在 ',' 之后乘以行

bash - 为 tup 运行的命令设置 pipelinefail

sql - 帮助从 MySQL 查询获取或显示 ColdFusion 中的随机记录?

javascript - ClojureScript 数组性能是否需要 mod - 或者只是关于边界检查?

arrays - 如何使用 sectionIndexTitles 的不同数组填充索引 UITableView 的部分