1
在bash中,只给出一个包含关联数组的名称的变量,如何在Bash中间接获取关联数组的键和值?
$ declare -A dict=([abc]=125 [def]=456)
$ dictvar="dict"
我们如何可以检索关联数组的键和值?
在bash中,只给出一个包含关联数组的名称的变量,如何在Bash中间接获取关联数组的键和值?
$ declare -A dict=([abc]=125 [def]=456)
$ dictvar="dict"
我们如何可以检索关联数组的键和值?
在bash,以获得通过间接关联数组的键,给定变量dictvar
一个阵列的名称可以利用declare
或local
(original source):
$ declare -a 'keys=("${!'"$dictvar"'[@]}")' # or 'local'
然后,向得到的值
$ for key in ${keys[@]}; do
$ value_var="${dictvar}[$key]"
$ echo "$key = ${!value_var}"
$ done
在this answer中建议使用eval
的替代方案。
根据this answer,在Bash 4.3+中,由于新的declare -n
可以将一个变量名称“解析”为一个实际变量,因此该任务要容易得多。