Make

根據環境變數的值設置變數

  • September 7, 2017

在我的 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 使檢查變數

$

這個想法是將變數設置branchproduction如果環境變數MY_SERVER_ENV等於prod,否則設置branchdeploy

如您所見,echo $$branch什麼也沒有顯示

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

引用自:https://unix.stackexchange.com/questions/390892