这是我的 .env.测试
S3_READY_MESSAGE="s3 is ready"
NGINX_READY_MESSAGE="nginx is ready"
Bash 输出变量
$ echo $(cat ../../../.env.test | grep -o -E '^[^#]+')
输出: S3_READY_MESSAGE =“s3已准备好”NGINX_READY_MESSAGE =“nginx已准备好”
Bash 导出变量
export $(cat ../../../.env.test | grep -o -E '^[^#]+')
错误> bash:导出:
ready"': not a valid identifier bash: export:
ready"':不是有效的标识符
我最初有一个解决方案,可以正常导出,但它不适用于带有空格的引用内容。
.env
var=somethingwasok
var="something with spaces was not ok"
export $(cat ./.env | grep -o -E '^[^#]+' | xargs)
(只要我手动执行此操作,那么我就知道要导出的文件,因此在这种情况下不介意使用 eval。)
# output .env | replace each valid line with export | remove comments
# || export all || val=something ||
# \/ \/ export val=something \/
eval $(cat ./.env | sed -E 's/^(\w)/export \1/g' | grep -o -E '^[^#]+')