[Linux] 在 Makefile 裡的 shell command 使用 shell 變數

[Linux] 在 Makefile 裡的 shell command 使用 shell 變數

今天想在 Makefile 裡執行一行 shell 指令,不過發現平常用 ${FILE} 這種方式讀 shell 變數,

在 Makefile 裡是行不通的,shell 指令只拿到了一個空的字串…

 

查了一下,這邊有了解答:

stackoverflow: How do I use shell variables in Makefile actions?

原來是 $ 開頭的會被認為是 Makefile 的變數,因此需要作 escape,

${FILE} 要改寫成 $${FILE} 才行,例如:

build_hotfix:
for FILE in pkg_student.tgz pkg_teacher.tgz;    \
do                                              \                                                                                                     \
./hotfix.sh "$${FILE}";                     \
done

 

將 $ 改成 $$ 之後,就沒有問題囉~

 

(本頁面已被瀏覽過 1,583 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料