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

sma*_*ber 2 make

在我的 makefile 中,我需要根据名为MY_SERVER_ENV.

我试过这个:

gulp:=./node_modules/.bin/gulp
ifeq ($(MY_SERVER_ENV), 'prod')
    branch:=production
else
    branch:=deploy
endif


checkvariable:
    @echo $$branch
Run Code Online (Sandbox Code Playgroud)

我得到的输出:

$ MY_SERVER_ENV=prod 生成检查变量

$

这个想法是将变量设置branchproduction如果环境变量MY_SERVER_ENV等于prod,否则设置branchdeploy

正如你所看到的,echo $$branch什么都不显示

Kus*_*nda 5

branch应该作为 访问$(branch),并使用

ifeq ($(MY_SERVER_ENV), 'prod')
Run Code Online (Sandbox Code Playgroud)

将 的值$MY_SERVER_ENV与文字字符串'prod'(包括单引号)进行比较。

gulp:=./node_modules/.bin/gulp

ifeq "$(MY_SERVER_ENV)" "prod"
    branch:=production
else
    branch:=deploy
endif

help:
        @echo $(branch)
Run Code Online (Sandbox Code Playgroud)

ifeq可以在以下几种形式:

ifeq (arg1, arg2)
ifeq 'arg1' 'arg2'
ifeq "arg1" "arg2"
ifeq "arg1" 'arg2'
ifeq 'arg1' "arg2"
Run Code Online (Sandbox Code Playgroud)

参考:https : //ftp.gnu.org/old-gnu/Manuals/make-3.79.1/html_chapter/make_7.html