一尘不染

我的Makefile为什么不在命令中插入表达式

go

我正在尝试编写一个超级简单的文件Makefile来在Go项目中运行测试。项目的依赖项已供应,但我想跳过这些测试。从命令行运行时,我只是做

$ go test $(go list ./... | grep -v /vendor/)

但是,当我把它变成Makefile这样的时候:

test:
    go test $(go list ./... | grep -v /vendor/)

.PHONY: test

该表达式将不被评估:

$ make
go test 
?       github.com/m90/some-repo    [no test files]

我如何获得make以类似shell的方式插值表达式的方法?


阅读 208

收藏
2020-07-02

共1个答案

一尘不染

在Makefile配方部分中,您将需要使用escape $使用第二个$

test:
    go test $$(go list ./... | grep -v /vendor/)

.PHONY: test
2020-07-02