W muszli, kiedy wchodzę
echo $demoPath
drukuje
/usr/local/demo
Jak mogę uzyskać wartość tej zmiennej $demoPath
w pliku makefile?
Odpowiedzi:
Jeśli wyeksportowałeś zmienną środowiskową:
export demoPath=/usr/local/demo
możesz po prostu odwołać się do niego po nazwie w makefile
( make
importuje wszystkie ustawione zmienne środowiskowe):
DEMOPATH = ${demoPath} # Or $(demoPath) if you prefer.
Jeśli nie wyeksportowałeś zmiennej środowiskowej, nie będzie ona dostępna, dopóki jej nie wyeksportujesz lub jeśli nie przekażesz jej jawnie w wierszu poleceń:
make DEMOPATH="${demoPath}" …
Jeśli używasz pochodną C Shell, substytut setenv demoPath /usr/local/demo
dla export
komendy.
demoPath=/usr/local/demo make
. Możesz to przetestować i zaktualizować swoją odpowiedź. Twoje zdrowie!
dla tych, którzy chcą jakiegoś oficjalnego dokumentu potwierdzającego zachowanie
Zmienne w make mogą pochodzić ze środowiska, w którym działa make. Każda zmienna środowiskowa, która sprawia, że widzi się podczas uruchamiania, jest przekształcana w zmienną make o tej samej nazwie i wartości. Jednak jawne przypisanie w pliku makefile lub z argumentem polecenia przesłania środowisko. (Jeśli podano flagę '-e', to wartości ze środowiska przesłaniają przypisania w pliku makefile.
https://www.gnu.org/software/make/manual/html_node/Environment.html