$ ls /tmp/foo
file1.txt
$ ls /tmp/bar
file5.txt file7.txt
Makefile内容:
$ cat Makefile
NUMS = $(patsubst file%,%,$(basename $(notdir $(wildcard /tmp/foo/file*.txt /tmp/bar/file*.txt))))
all:
@echo $(NUMS)
当我执行make。
$ make
1 5 7
如何以逗号分隔打印数字,例如:1,5,7
?
答案 0 :(得分:2)
要理解makefile解析规则(与shell之类的其他语言不同),重要的是make在扩展变量之前分解参数。
好消息是,这意味着您可以通过将其“隐藏”在变量后面来放置您喜欢的任何特殊字符:
COMMA := ,
EMPTY :=
SPACE := $(EMPTY) $(EMPTY)
NUMS = $(subst $(SPACE),$(COMMA),$(basename $(notdir $(wildcard /tmp/foo/file*.txt /tmp/bar/file*.txt))))