因此,我正在学习 Makefile,在一个示例中,我要删除 clean 部分中的文件。我想做一些类似的事情rm paper.{aux,pdf,bib,bbl}
,但当我这样做时,make clean
它无法识别任何类似的文件。在 makefile 之外执行该删除命令可以正常工作。makefile 不能很好地处理这样的括号吗?在这样的上下文中,我没有找到太多关于 makefile 中的括号的信息。
答案1
这是因为默认make
使用作为 shell - 括号扩展是更复杂的 shell 的一个特性,例如。/bin/sh
/bin/bash
您可以在 Makefile ex 中明确设置 shell。
SHELL := /bin/bash
.PHONY: clean
clean:
@echo rm paper.{aux,pdf,bib,bbl}