Makefile为文件夹中的每个文件执行脚本

时间:2017-07-03 19:51:35

标签: makefile

我想为每个.sh文件执行一个将.sh脚本转换为.md文件的shell脚本。 目前我从makefile

获得了这个输出
'./myscript' < testB.sh testA.sh >> testB.md testA.md

但我想要这样的输出

'./myscript' < testA.sh >> testA.md; './shelltomd' < testB.sh >> testB.md

我想在没有任何形式的循环的情况下这样做,但我不知道如何用makefile解决这个问题:/

我的Makefile

SH_FILES=$(wildcard *.sh)
SHTOMD=$(SH_FILES:.sh=.md)
md:
'./myscript' <$< $(SH_FILES) >>$< $(SHTOMD)

感谢您帮助stackoverflow社区并为我糟糕的英语而烦恼:D

1 个答案:

答案 0 :(得分:0)

您需要编写一条知道如何将一个.sh文件转换为一个.md文件的规则。您可以使用pattern rule

%.md : %.sh
        './myscript' < $< > $@

(我怀疑你想在这里使用>>

一旦你教会了如何创建.md文件,只需告诉它你想要创建哪些md文件:

SH_FILES := $(wildcard *.sh)
MD_FILES := $(SH_FILES:.sh=.md)

md: $(MD_FILES)

你已经完成了。