根据环境变量的值设置变量

根据环境变量的值设置变量

在我的 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为,否则设置为。productionMY_SERVER_ENVprodbranchdeploy

正如你所看到的,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

相关内容