1
我有一個makefile,如下爲什麼`?=`(「set if absent」)會導致取消設置環境變量?
.PHONY: check
check:
./check.sh
.PHONY: bar
bar: ENV_TEST ?= bar_env_test
bar:
echo $(ENV_TEST)
和腳本文件(check.sh
)
#!/bin/bash
echo $ENV_TEST
echo $ENV_TEST_2
首先,我出口和ENV_TEST
兩個值ENV_TEST_2
變量
export ENV_TEST=env_test
export ENV_TEST_2=env_test_2
然後運行make check
並獲得以下輸出
./check.sh
env_test_2
ENV_TEST_2
的值被正確打印,但ENV_TEST
的值爲空。 我的預期輸出是這樣
./check.sh
env_test
env_test_2
有誰知道發生了什麼ENV_TEST
環境變量?
僅供參考,如果您從'check'目標運行'env ENV_TEST = $(ENV_TEST)./check.sh',那麼您將不會*出現此問題。 –
謝謝@CharlesDuffy。你對這個問題有什麼想法嗎?爲什麼'?='影響結果? – nghialv
如果我有答案,我會*添加*答案,而不是評論。 –