我正在使用一个makefile,其中有一行
VAR=$(MVAR) command1;
现在,当 command1 执行时,我希望 VAR 保留 MVAR 分配的值,这是成功完成 command1 所必需的。但不幸的是,VAR 在执行 command1 时包含一些默认值,即 VAR 在执行 command1 时无法保持分配期间分配的值。
如果我在任何 shell 中运行相同的命令,则保留 VAR 的值并且 command1 成功执行。
几乎尝试了一切在makefile上运行它。有人可以解释一下 gnu makefile 中这种行为背后的原因和可能的解决方案。我使用 Linux 作为操作系统,使用 ksh 作为 Makefile 的外壳。