1. ホーム
  2. makefile

[解決済み] PATH "文字列を表示するエコーファイルの作成

2022-03-06 04:57:03

質問

makeファイルに次の文字列を強制的に表示させようとしています。

"Please execute next commands:
setenv PATH /usr/local/greenhills/mips5/linux86:$PATH"

問題は "$PATH" . コマンド

@echo "setenv PATH /usr/local/greenhills/mips5/linux86:$PATH"

結果を出す

"setenv PATH /usr/local/greenhills/mips5/linux86:ATH"

エスケープ文字、引用符の任意の組み合わせ。 "$(shell echo " は、必要な結果が得られなかった......。

何かご意見はありますか?

解決方法は?

GNU makeのマニュアル を説明するときに、この具体例について話しています。 value という関数があります。

<ブロッククオート

value関数を使うと、ある値を利用することができます。 変数が展開されることなく ただし、これは すでに行われた拡張を取り消す。 単純に展開された変数が、その値を展開する際に この場合、value関数は同じ値を返します。 は、その変数を直接使用した場合と同じ結果になります。

値関数の構文は以下の通りです。

 $(value variable)

variableは変数の名前であり、その変数への参照ではないことに注意してください。したがって、通常は や括弧で囲んで記述します。(ただし 変数への参照を名前に含めることができます。 定数)

の値を含む文字列を返します。 という変数があり、展開が行われない。例えば、この を作成します。

 FOO = $PATH

 all:
         @echo $(FOO)
         @echo $(value FOO)

最初の出力行は、"$P" が make 変数として展開されるため ATH になります。 出力行は、現在の$PATH環境変数の値です。 という変数があり、value関数が展開を避けているためです。