Bash

將 Make 變數傳遞給從 Make 內部呼叫的 Bashscript

  • September 14, 2018

在模式規則中,我想導出make變數,如$(TargetLocation), $@

我嘗試了以下但它沒有被導出。bash 腳本是可執行的。

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

我也試過這個(我已經使用${VarA}而不是${TargetLocation}在 bash 腳本中),但它沒有被導出:

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

我想在 Bash 腳本中使用這些變數。有什麼建議麼?

您需要導出變數名稱,而不是值。

您可以使用 GNU Makeexport語句導出所有子程序的名稱

export TargetLocation

如果您只想要一個規則的值,那麼您的語句必須是正常的 shell 語法

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

在這種情況下,根據變數的內容,引號可能是必要的,如果變數可能有任意值,它仍然很容易受到攻擊。另一方面,如果 make 以呼叫使用者的權限執行,則不會有額外的危險。

引用自:https://unix.stackexchange.com/questions/469102