2014-10-09 44 views

回答

3

在bash,以获得通过间接关联数组的键,给定变量dictvar一个阵列的名称可以利用declarelocaloriginal 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可以将一个变量名称“解析”为一个实际变量,因此该任务要容易得多。