当尝试使用make文件运行go程序时,以下代码不起作用。我尝试显式地设置env变量,方法是使用一条语句来设置(export),另一条语句用于运行我的go代码,其中我读取了env变量。这不管用。
test:
export Sample="Help"
go run main.go与上面相同,在make文件中实现如下所示,我的go代码能够读取env变量。
test:
Sample="Help" go run main.go任何帮助都将不胜感激。
发布于 2021-09-30 20:19:23
正如在其他注释中提到的,每一行都在单独的shell中运行,因此要从一个shell中获取变量的结果,您需要“链接”它们,如注释中所示。
我发现的另一种非常简洁的方法(并且避免了必须链接shell命令)是:
.PHONY: all
all: export TEST=123
all:
@echo "TEST (make) = $(TEST)"
@echo "TEST (shell) = $$TEST"
@./script.sh
$(info TEST: $(TEST) - not set outside the recipe)测试脚本包含echo "TEST (in shell script) = $TEST"
输出为:
TEST: - not set outside the recipe
TEST (make) = 123
TEST (shell) = 123
TEST (in shell script) = 123https://stackoverflow.com/questions/69393909
复制相似问题