Makefileで長い変数名を使用する方法は?

Makefileで長い変数名を使用する方法は?

今日は、コマンドについて学びながらmake現在のディレクトリを読めばどんなコマンドでbashも実行できるようだと分かりました。Makefile

しかし、問題が発生しました。変数を使用すると、システムは変数の最初の文字のみを読み取るようです。

私のファイルと結果は次のとおりです。

# FILE CONTENT
Z="zen_on_the_moon"
now=$(date)

fun:
    touch $Z
    echo $now
    echo "file created on" $now >> $Z

# RUNNING IT
=>make fun
touch "zen_on_the_moon"
echo ow
ow
echo "file created on" ow >> "zen_on_the_moon"

now以下のプロジェクトで変数をどのように使用する必要がありますか?Makefilefun

答え1

Makefileあなたより変数参照構文を使用して$(var_name)。使用すると、$var_nameドル記号$、開き括弧(、または開く括弧以外の最初の文字が{変数名として扱われます。

では、$now実際に変数の内容を取得して$nからリテラル文字列を取得しますow

したがって、以下が必要です。

$(now)

という変数の内容を取得しますnow

また、取得されるのはコマンドの結果ではなく、now=$(date)name変数の内容であることに注意してください。使用する必要がありますdatedateシェル機能:

now=$(shell date)

関連情報