2017-02-10 8 views
1

私はMakefileに慣れていないので、Makefileでbashスクリプトを実行して、その変数をtargetに使用してみます。以下のようなmakefileの各行をファイルから読み込むbashスクリプト変数の使い方

私のbashスクリプトは、ファイルから読み込む、変数

#!/bin/bash 

input="./logs" 
context="" 

while IFS= read -r var; \ 
do \ 
    context+="\n$var"; \ 
done < "$input" 

echo -e $context 
にそれぞれの行をマージ

- foo 
- bar 
- barzz 

とbashスクリプトの作業罰金

以下のように私のログファイルしかし、Makefileに移動するとうまくいきません。

Makefileの

.PHONY: test pack clean 

INPUT = "./logs" 
CONTEXT = "" 

while IFS= read -r var; \ 
do \ 
    CONTEXT+="\n$(var)"; \ 
done < "$(INPUT)" 


test: 
    echo -e $(CONTEXT) 

私はそれをどのように修正する必要がありますか?

お時間をいただきありがとうございます。

答えて

1

logsファイルにあるすべての値をCONTEXT変数に書き込むことを主な目標としています。そのシェル行を実行しているmakeを解決するのではなく、私は小さなシェルスクリプトを自分の別ファイルにしておきたいので、今のところmyScriptと呼ぶことができます。あなたはそれのために持っているものを保つことができます。

は今、あなただけで変数を初期化することができますメイクのために:

CONTEXT = $(shell ./myScript) 

私は個人的に、これはあなたの目標を達成するためのクリーンな方法だと思います。あなたが本当にmakefileのすべてを望む場合は、this answerを見てください。

関連する問題