2017-07-03 19 views
0

すべての.shファイルに対して、.shスクリプトを.mdファイルに変換するシェルスクリプトを実行します。私はメイクフォルダ内のすべてのファイルに対してMakefile実行スクリプト

'./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コミュニティと私の悪い英語のために泣いてください:

答えて

0

ファイルに1つの.shファイルを有効にする方法を知っている1つのルールを書く必要があります。あなたはそのための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