foreman
可以读取 .env 文件并从内容中设置环境变量,然后运行程序
例如foreman run -e vars.env myprogram
...但它做了很多其他的事情(并且主要关注使用其 Procfile 格式启动事物)。
是否有一个更简单的(Linux / Unix)工具,只专注于读取.env 文件并使用新环境执行命令?
示例环境文件(来自http://ddollar.github.io/foreman/#ENVIRONMENT):
FOO=bar
BAZ=qux
答案1
您可以在活动 shell 中获取环境文件并运行该程序:
sh -ac ' . ./.env; /usr/local/bin/someprogram'
开关-a
导出所有变量,以便程序可以使用它们。
答案2
另一种选择是envdir
:
envdir 运行另一个程序,其环境根据指定目录中的文件进行修改。
- daemontools原文:http://cr.yp.to/daemontools/envdir.html
- 一个 Python 端口:https://github.com/jezdez/envdir
答案3
我试过了source .env
,效果很好。不幸的是,这里发布的其他解决方案对我都不起作用。
答案4
这有效:
env $(cat .env | tr "\\n" " ") myprogram
但显然不会检查.env
文件格式的正确性,而实用程序会这样做。