我在 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)