2014-10-09 29 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可以將一個變量名稱「解析」爲一個實際變量,因此該任務要容易得多。