Make内で呼び出されたBashscriptにMake変数を渡します。

Make内で呼び出されたBashscriptにMake変数を渡します。

makeパターンルールで、のような変数をエクスポートしたいと思います$(TargetLocation)$@

以下を試しましたが、エクスポートされませんでした。 bashスクリプトは実行可能です。

export $(TargetLocation); \
export $@; \
./EditHtml.sh;

${VarA}私もこれを試しましたが(内部bashスクリプトの代わりに使用しました${TargetLocation})エクスポートされませんでした。

./EditHtml.sh VarA=$(TargetLocation); \

Bashスクリプトでこれらの変数を使用したいと思います。どんな提案がありますか?

答え1

値ではなく変数名をエクスポートする必要があります。

exportGNU Make ステートメントを使用して、すべての子プロセスの名前をエクスポートできます。

export TargetLocation

1つのルール値のみが必要な場合は、ステートメントは通常のシェル構文でなければなりません。

    export TargetLocation="$(TargetLocation)"; \
    ./EditHtml.sh

この場合、変数の内容によっては引用符が必要になる場合があり、変数に任意の値がある場合は依然として脆弱です。一方、呼び出すユーザーの権限で make を実行すると、追加のリスクはありません。

関連情報