这可能会有所帮助:
export $(cat .env | xargs) && rails c
我使用它的原因是如果我想测试.env
我的 Rails 控制台中的东西。
gabrielf https://stackoverflow.com/users/293198/gabrielf想出了一个保持变量本地化的好方法。这解决了从一个项目到另一个项目时潜在的问题。
env $(cat .env | xargs) rails
我已经测试过这个bash 3.2.51(1)-release
Update:
忽略以以下开头的行#
,使用这个(感谢皮特的评论 https://stackoverflow.com/questions/19331497/set-environment-variables-from-file#comment37343914_20909045):
export $(grep -v '^#' .env | xargs)
如果你想unset
文件中定义的所有变量,请使用:
unset $(grep -v '^#' .env | sed -E 's/(.*)=.*/\1/' | xargs)
Update:
要同时处理带空格的值,请使用:
export $(grep -v '^#' .env | xargs -d '\n')
在 GNU 系统上——或者:
export $(grep -v '^#' .env | xargs -0)
在 BSD 系统上。
From 这个答案 https://superuser.com/a/649780/139303您可以使用以下命令自动检测操作系统:
export-env.sh
#!/bin/sh
## Usage:
## . ./export-env.sh ; $COMMAND
## . ./export-env.sh ; echo ${MINIENTREGA_FECHALIMITE}
unamestr=$(uname)
if [ "$unamestr" = 'Linux' ]; then
export $(grep -v '^#' .env | xargs -d '\n')
elif [ "$unamestr" = 'FreeBSD' ] || [ "$unamestr" = 'Darwin' ]; then
export $(grep -v '^#' .env | xargs -0)
fi