Environment-Variables
Makefile 包含環境文件
我正在嘗試將一些環境變數包含到 Makefile 中。env 文件如下所示:
FOO=bar BAZ=quux
export
請注意,每個環境變數都沒有前導。如果我在 Makefile 中添加前導文件export
和僅include
env 文件,則一切正常。但我需要保持 env vars sans 領先export
。這使我無法僅include envfile
在 Makefile 中使用。我也試過做這樣的事情:
sed '/^#/!s/^/export /' envfile > $(BUILDDIR)/env include $(BUILDDIR)/env
但是這樣做會導致 make 拋出錯誤,因為 env 文件不存在用於包含。
如果您使用的是 gnu make,那麼應該包含該
envfile
文件,然後導出從同一文件中獲得的變數列表:#!make include envfile export $(shell sed 's/=.*//' envfile) test: env
我遇到了類似的問題並登陸了這個執行緒。另一種可能的解決方案是只執行不帶任何參數的 make export 命令:
include .env export
這會將所有 make 變數導出為環境變數。這種行為可能匹配也可能不匹配所有案例,但它對我有用,並且不涉及任何 shell 腳本魔法。