![添加 Make 任务持续时间的环境变量](https://linux22.com/image/90599/%E6%B7%BB%E5%8A%A0%20Make%20%E4%BB%BB%E5%8A%A1%E6%8C%81%E7%BB%AD%E6%97%B6%E9%97%B4%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F.png)
我使用 make 来处理应用程序的构建文件,并且这些构建过程使用节点模块。由于我在本地安装这些节点模块,因此我必须在$PATH
哪里指定调用可执行文件,例如PATH=$(npm bin):$PATH
.
我在我的 Makefile 中设置了一个变量,NPMEXEC := PATH=$(shell npm bin):$$PATH
并在需要时将其添加到我的命令中。但是,对于某些较长的任务(例如在运行多个命令的测试期间),在任务的整个持续时间内进行 PATH 分配会很方便,类似于pushd
/ popd
。那可能吗?
答案1
“任务”不是常见的制造术语。我假设你的意思是规则。如果您使用 GNU make,您可以为特定规则设置变量,或者更准确地说,为具体目标。
test-results: export PATH := $(shell npm bin):$$PATH
test-results: test-binary1 test-binary2 test-data2 reference-test-results
test-binary1 >test-results
test-binary2 test-data2 >>test-results
diff test-results reference-test-results
请注意,赋值是在 make 语法中进行的,这与 shell 语法不同。并且注意,修改变量时,必须使用渴望(“扩展”)分配,而不是=
会创建循环引用的惰性赋值。
答案2
我认为您正在 bash 中寻找export
命令(或您选择的 shell 中的等效命令):http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html