2017-02-23 65 views
0

我正在扔这条毛巾。子目录中的Foreach python文件

我有一个相当成功的makefile,它发现子目录中的文件将它们作为过滤器传递给pandoc。它在没有空格的路径中效果很好,但是我不能让它在包含空格的路径中运行。

这里是MWE:

BASEDIR=$(CURDIR) 
STYLEDIR=$(BASEDIR)/style 
FILFILES := "$(shell find "$(STYLEDIR)" -name *.py)" 
FILTER := $(foreach "$(FILFILES)", "$(FILFILES)", --filter $(FILFILES)) 
TEXFLAGS = --filter pandoc-crossref --filter pandoc-citeproc $(FILTER) --latex-engine=xelatex 

pdf: 
    pandoc document.md $(TEXFLAGS) 

为了使示例工作,你必须在某个目录与空间运行makefile,尝试this md dir,创建一个子目录style并添加任何.py文件。现在运行,你会看到FILFILES选择合适的python文件,但是foreach会创建三个实例,因此--filter --filter --filter。这是为什么?我究竟做错了什么?

如果你想充分生成文件:含化妆空间here

回答

1

这是几乎不可能用字(包括文件名)。

要清楚,完全忽略所有类型的引号字符(双,单,后)。

在某些特定情况下,您可以使用技巧来使其工作。但是,您并未向我们提供任何有关您实际在做什么的信息;您将展示如何分配变量FILFILESFILTER,但不显示如何使用这些变量。

如果这些变量只在食谱中使用,那么你通常可以使它工作。如果你使用它们作为先决条件,那么即使不是不可能,也是非常困难的。

相关问题