我有以下设置:
#! /bin/bash
init_globals() {
declare -gA global_arr1=( ["key"]="val" )
}
init_globals
echo "${global_arr1["key"]}" # WORKS! print val
local_arr1=( ["key"]="local val" )
i=1
temp=local_arr$i
current_arr=${!temp}
echo ${current_arr["key"]} # WORKS! print local val
temp=global_arr$i
current_arr=${!temp}
echo ${current_arr["key"]} # DOESN'T WORK! expect val but print nothing...
我正在尝试基于变量 i 访问全局定义的关联数组。所以我使用间接扩展来分配current_arr
我想要的东西。它非常适用于本地定义的关联数组。但它不适用于全局数组。为什么这样?