我试图将命令的结果分配给GNU make中的变量.如果我在规则之外执行它,它可以工作:
$ cat stack.mk
GIT_BRANCH=$(shell git rev-parse --abbrev-ref HEAD)
all:
@echo Git branch is $(GIT_BRANCH)
$ make -f stack.mk all
Git branch is dev
Run Code Online (Sandbox Code Playgroud)
但是如果我把它放在规则体中则不是:
$ cat stack.mk
all:
export GIT_BRANCH=$(shell git rev-parse --abbrev-ref HEAD)
@echo Git branch is $(GIT_BRANCH)
$ make -f stack.mk all
export GIT_BRANCH=dev
Git branch is
Run Code Online (Sandbox Code Playgroud)
是否可以在规则中分配变量.此时我想将一些git命令的结果分配给shell/Makefile变量.
是的,如果您尝试设置Makefile变量,可以使用eval函数来完成.
all:
$(eval GIT_BRANCH=$(shell git rev-parse --abbrev-ref HEAD))
echo Git branch is $(GIT_BRANCH)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1990 次 |
| 最近记录: |