2

在 Bash 中,只给定一个包含关联数组名称的变量,

$ declare -A dict=([abc]=125 [def]=456)
$ dictvar="dict"

我们如何检索关联数组的键和值?

4

1 回答 1

3

在 Bash 中,要通过间接获取关联数组的键,给定变量dictvarone 中的数组名称可以利用declarelocal原始来源):

$ declare -a 'keys=("${!'"$dictvar"'[@]}")' # or 'local'

然后,获取值

$ for key in ${keys[@]}; do
$     value_var="${dictvar}[$key]"
$     echo "$key = ${!value_var}"
$ done

此答案eval中建议使用替代方法。

根据这个答案declare -n,在 Bash 4.3+ 中,由于可以将变量名“解析”为实际变量的新功能,这项任务更容易完成。

于 2014-10-09T00:49:58.557 回答