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