我一直试图弄清楚如何在一组文件上运行程序,使用GNU Make:
我有一个加载一些文件名的变量:
FILES=$(shell ls *.pdf)
现在我想在'FILES'中的每个文件上运行程序'p',但我似乎无法想象如何做到这一点。
'FILES'变量的一个例子是:
"a.pdf k.pdf omg.pdf"
我已经尝试了$(foreach ,,)没有运气,#!bin / bash like loop似乎失败了。
答案 0 :(得分:1)
您可以在命令中执行shell循环:
all:
for x in $(FILES) ; do \
p $$x ; \
done
(请注意,只有命令的第一行必须以制表符开头,其他行可以有任何旧的空格。)
这是一种更具制作风格的方法:
TARGETS = $(FILES:=_target)
all: $(TARGETS)
@echo done
.PHONY: $(TARGETS)
$(TARGETS): %_target : %
p $*