Python “评估”$(cat配置文件|/打印到_env_variables.py)";不在函数中工作

Python “评估”$(cat配置文件|/打印到_env_variables.py)";不在函数中工作,python,bash,Python,Bash,我有一个简单的bash脚本,它使用的config.ini文件如下所示: [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(sc

我有一个简单的bash脚本,它使用的config.ini文件如下所示:

[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变量中,允许我从bash中这样使用它们:
echo“${a[b]}”

这只有在我这样做时才有效:

  • 评估
  • 检查变量
  • 但如果我:

  • 调用执行求值(减少代码重复)的函数
  • 检查
  • 该变量不存在


    为什么会这样?

    在shell函数中声明一个不存在于函数外部的局部变量。要声明全局变量,必须添加
    -g
    开关。
    请参见shell函数中的
    帮助声明
    man bash

    声明
    声明函数外部不存在的局部变量。要声明全局变量,必须添加
    -g
    开关。
    请参见
    帮助声明
    man bash

    了解它的价值,这是一个真正的价值,这是一个真正的价值