在 Bash 中,仅给定一个包含关联数组名称的变量,
$ declare -A dict=([abc]=125 [def]=456)
$ dictvar="dict"
我们如何检索关联数组的键和值?
在 Bash 中,通过间接获取关联数组的键,给定变量中的数组名称dictvar
一个人可以利用declare
or local
(原始来源 http://wiki.bash-hackers.org/syntax/arrays#indirection):
$ declare -a 'keys=("${!'"$dictvar"'[@]}")' # or 'local'
然后,获取值
$ for key in ${keys[@]}; do
$ value_var="${dictvar}[$key]"
$ echo "$key = ${!value_var}"
$ done
另一种使用eval
建议在这个答案 https://stackoverflow.com/a/13306800/435522.
根据这个答案 https://stackoverflow.com/a/23839567/435522,在 Bash 4.3+ 中,由于有了新的功能,这项任务更容易完成declare -n
可以将变量名称“解析”为实际变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)