Bash
將 Make 變數傳遞給從 Make 內部呼叫的 Bashscript
在模式規則中,我想導出
make
變數,如$(TargetLocation)
,$@
。我嘗試了以下但它沒有被導出。bash 腳本是可執行的。
export $(TargetLocation); \ export $@; \ ./EditHtml.sh;
我也試過這個(我已經使用
${VarA}
而不是${TargetLocation}
在 bash 腳本中),但它沒有被導出:./EditHtml.sh VarA=$(TargetLocation); \
我想在 Bash 腳本中使用這些變數。有什麼建議麼?
您需要導出變數名稱,而不是值。
您可以使用 GNU Make
export
語句導出所有子程序的名稱export TargetLocation
如果您只想要一個規則的值,那麼您的語句必須是正常的 shell 語法
export TargetLocation="$(TargetLocation)"; \ ./EditHtml.sh
在這種情況下,根據變數的內容,引號可能是必要的,如果變數可能有任意值,它仍然很容易受到攻擊。另一方面,如果 make 以呼叫使用者的權限執行,則不會有額外的危險。