繁体   English   中英

用空格导出环境变量

[英]Exporting environment variables with spaces

我想以一致的方式处理环境变量。 例如,我有一个.env.development文件, .env.development包含:

# Some comment to be ignored
VAR0='some""" value0'
VAR1="some value1"
VAR2=ignored_value
VAR2=some_value2

在bash shell中,我可以设置shell变量(而不是环境变量):

$ source .env.development
$ echo $VAR0
some""" value0
$ echo $VAR1
some value1

我还想使这些变量可用于从外壳启动的子流程:

script.py

#!/usr/bin/python
import os
print("VAR0 is:", os.environ.get("VAR0")

因此,我需要导出这些变量。 接近使用以下内容,但保留了允许采购文件所需的引号:

$ IFS=$'\n' && export $(grep -v ^# .env.development | xargs -0) && unset IFS && ./script.py
('VAR0 is:', '\'some""" value0\'')

我想获得输出:

('VAR0 is:', 'some""" value0')

您可以忽略grep,xargs和IFS并将set -asource

$ set -a && source .env.development && set +a && ./script.py 
('VAR0 is:', 'some""" value0')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM