我正在尝试使用2个文件为一个shell会话创建一个关联数组,一个是主数组,第二个文件具有特定于环境的值,例如Ubuntu或OSX。
要测试这些目前包含:
main.sh
declare -A ddops;
ddops[main]='test val';
os.sh
ddops[os]='osx';
目的是通过网址设置,以便使用
运行脚本bash <(curl -s https://somegiturlwhichshowstobeaccessibleandexecute);
包含
./mainenv.sh;
./osenv.sh;
然而,当从终端测试空输出时
echo ${ddops[main]};
echo ${ddops[os]};
我认为这可能是一个范围问题,如何声明这个数组进入shell并变得可访问?
为了清楚起见,curl正确执行以创建包含上述代码的mainenv.sh和osenv.sh。 这些文件的执行是在保存它们的目录中完成的。
答案 0 :(得分:0)
在范围问题的假设下,我继续将所有文件编译成单个文件(bashcompile),然后cp
将其编译为.bash_profile
,并使用source ~/.bash_profile
重新加载。
然后上述测试成功。