导出从 YAML 文本文件解析的环境变量

导出从 YAML 文本文件解析的环境变量

我在 YAML 文件中声明了一些环境变量,例如:

runtime: python37

env_variables:
  API_URL: 'https://fake.api.com/'
  API_USERNAME: '[email protected]'
  API_PASSWORD: 'Passwooord'

我想使用脚本将它们导出到环境变量,我可以回显正确的语法,但我仍然无法导出它们。

sed -nr '/env_variables:/,$ s/  ([A-Z_]+): (.*)/\1=\2/ p' app.yaml | while read assign; do echo $assign; done

这与在我的例子中,变量名也通过管道传递。

答案1

假设该sed命令正确输出形式的行var=value,您可以执行以下操作:

while read assign; do
 export "$assign"; 
done < <(sed -nr '/env_variables:/,$ s/  ([A-Z_]+): (.*)/\1=\2/ p' app.yaml)

或者,如果您不需要导出,并且输入相当安全(无 shell 语法),

. <(sed -nr '/env_variables:/,$ s/  ([A-Z_]+): (.*)/\1=\2/ p' app.yaml)

相关内容