我有一个使用config.ini文件的简单bash脚本,如下所示:
[a]
b=1
c=2
...
在bash脚本中,有时我会在eval "$(cat config_file | ./print_to_env_variables.py)"
中使用python脚本:
config = ConfigParser()
config.readfp(sys.stdin)
for sction in config.sections():
print('declare -A {}'.format(sction))
for k, v in config.items(sction):
print("{}[{}]={}'.format(sction, k ,v))
现在,此脚本的作用是将所有部分添加到env变量中,使我可以像这样echo "${a[b]}"
这只能在我这样做的情况下起作用:
但是如果我:
该变量不存在。
那是为什么?
答案 0 :(得分:2)
declare
声明了该函数外部不存在的局部变量。要声明全局变量,必须添加-g
开关。
参见help declare
或man bash
。