我正在编写Makefile以简化乳胶文件编译。我正在尝试创建一个clean
目标来删除pdflatex
生成的所有文件,我写了这个:
SHELL := /bin/bash
name = mydocument
all: show
$(name).pdf: $(name).tex
# We need to run it twice to update the TOC
pdflatex $<
pdflatex $<
show: $(name).pdf
gnome-open $<
clean:
ls -l $(name)!(.tex)
.PHONY: all clean show
问题是命令ls -l $(name)!(.tex)
。如果我从终端运行它,我会得到要删除的文件列表(即所有文件名为&#34; mydocument&#34;其扩展名与&#34; .tex&#34;不同),但如果我运行它使用make clean
我收到以下错误:
ls -l mydocument!(.tex)
/bin/bash: -c: line 0: syntax error near unexpected token "("
/bin/bash: -c: line 0: `ls -l mydocument!(.tex)'
make: *** [clean] Error 1
有谁知道如何解决这个问题?