在我的 makefile 中,我需要根据名为 的环境变量设置一个变量MY_SERVER_ENV
。
我试过这个:
gulp:=./node_modules/.bin/gulp
ifeq ($(MY_SERVER_ENV), 'prod')
branch:=production
else
branch:=deploy
endif
checkvariable:
@echo $$branch
我得到的输出:
$ MY_SERVER_ENV=prod 使检查变量
$
这个想法是如果环境变量等于,则将变量设置branch
为,否则设置为。production
MY_SERVER_ENV
prod
branch
deploy
正如你所看到的,echo $$branch
什么也没有显示
答案1
branch
应该被访问为$(branch)
, 并使用
ifeq ($(MY_SERVER_ENV), 'prod')
会将 的值$MY_SERVER_ENV
与文字字符串'prod'
(包括单引号)进行比较。
gulp:=./node_modules/.bin/gulp
ifeq "$(MY_SERVER_ENV)" "prod"
branch:=production
else
branch:=deploy
endif
help:
@echo $(branch)
可以ifeq
采用以下形式:
ifeq (arg1, arg2)
ifeq 'arg1' 'arg2'
ifeq "arg1" "arg2"
ifeq "arg1" 'arg2'
ifeq 'arg1' "arg2"
参考:https://ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_7.html