Arrays 如何在Bash中间接获取关联数组的键和值?
在Bash中,仅给定包含关联数组名称的变量Arrays 如何在Bash中间接获取关联数组的键和值?,arrays,bash,associative-array,indirection,Arrays,Bash,Associative Array,Indirection,在Bash中,仅给定包含关联数组名称的变量 $ declare -A dict=([abc]=125 [def]=456) $ dictvar="dict" 如何检索关联数组的键和值?在Bash中,如果给定变量dictvar中数组的名称,则可以利用declare或local()间接获取关联数组的键: 然后,获取值 $ for key in ${keys[@]}; do $ value_var="${dictvar}[$key]" $ echo "$key = ${!value_
$ declare -A dict=([abc]=125 [def]=456)
$ dictvar="dict"
如何检索关联数组的键和值?在Bash中,如果给定变量
dictvar
中数组的名称,则可以利用declare
或local
()间接获取关联数组的键:
然后,获取值
$ for key in ${keys[@]}; do
$ value_var="${dictvar}[$key]"
$ echo "$key = ${!value_var}"
$ done
中建议使用eval
进行替代
根据,在Bash4.3+中,由于新的declare-n
可以将变量名“解析”为实际变量,因此此任务更容易完成
$ for key in ${keys[@]}; do
$ value_var="${dictvar}[$key]"
$ echo "$key = ${!value_var}"
$ done