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

问题描述:

我想为每个.sh文件执行将.sh脚本转换为.md文件的shell脚本。 目前我接到的makefileMakefile为文件夹中的每个文件执行脚本

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

此输出,但我想这样

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

我想这样做没有任何形式的循环,但我不知道如何与解决这样的输出仅生成文件:/

我的Makefile

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

谢谢你您的帮助stackoverflow社区和sry为我的英语不好:D

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

%.md : %.sh 
     './myscript' < $< > [email protected] 

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

一旦你教做出如何创建.MD文件,只需告诉它的md你想要的文件创建:

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

md: $(MD_FILES) 

你就完成了。

+0

thx即解决方案:D – Taito