怎么把 .env 文件中的变量设为全局环境变量

比如有一个文件
.env

DATABASE_HOST="xxx"
DATABASE_PORT=3306
DATABASE_DATABASE_NAME="xxx"
DATABASE_USERNAME="xx"
DATABASE_PASSWORD="xxx"


RABBIT_HOST=xxx
RABBIT_PORT=5672
RABBIT_USER="xxx"
RABBIT_PASSWORD="xxx"
RABBIT_VHOST="/"
RABBIT_MANAGEMENT_PORT="xxx"

我们可以使用 source .env 命令把 .env 文件中的变量设为当前 shell 的环境变量,但是仅仅限于当前的 shell,有什么命令可以把 .env 文件中的变量设为全局环境变量。

虽然自己写一个脚本实现也很方便,但是最好是常见发行版自带的命令来实现这件事情

阅读 5.4k
3 个回答

shell没有直接的指令完成你要的需求,但你可以使用命令替换来达成你要的效果

export `<.env`

试试 Shell 里执行:

while read line; do export $line; done < ./.env

读取文件每一行,再遍历执行 export XXX

手动在每个前面加上export就行了

export DATABASE_HOST="xxx"
export DATABASE_PORT=3306
export DATABASE_DATABASE_NAME="xxx"
...

EDIT 不改原来的.env的方案:

$ set -a
$ . .env
$ set +a

See: https://unix.stackexchange.co...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题