Make
根據環境變數的值設置變數
在我的 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
什麼也沒有顯示
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