我有一个简单的 Makefile:
MARKDOWNS = $(shell find . -type f -name "*.md" ! -name "index.md" ! -name "README.md")
all: list
list:
echo $(MARKDOWNS)
我的目录有这个
*.md
文件:
$ ls *.md
foo.md bla.md ra.md
所以,Makefile 给了我:
./foo.md ./bla.md ./ra.md
但是期望的输出是
"./foo.md", "./bla.md", "./ra.md"
我怎样才能改变
$(MARKDOWNS)
来实现它?我使用 GNU Make 4.4.1.
也许不是最简单的解决方案但有效:
MARKDOWNS = $(shell find . -type f -name "*.md" ! -name "index.md" ! -name "README.md" | sed 's/^/"/;s/$$/",/' | tr '\n' ' ' | sed 's/..$$//')
all: list
list:
echo '$(MARKDOWNS)'