![是否有一个实用程序可以从 env 文件中读取环境变量,然后运行命令(比 foreman 更轻量)?](https://linux22.com/image/618199/%E6%98%AF%E5%90%A6%E6%9C%89%E4%B8%80%E4%B8%AA%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%8F%AF%E4%BB%A5%E4%BB%8E%20env%20%E6%96%87%E4%BB%B6%E4%B8%AD%E8%AF%BB%E5%8F%96%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E8%BF%90%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%88%E6%AF%94%20foreman%20%E6%9B%B4%E8%BD%BB%E9%87%8F%EF%BC%89%EF%BC%9F.png)
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
文件格式的正确性,而实用程序会这样做。