首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从make recipe not working as exected设置环境变量

从make recipe not working as exected设置环境变量
EN

Stack Overflow用户
提问于 2021-09-30 14:22:48
回答 1查看 49关注 0票数 0

当尝试使用make文件运行go程序时,以下代码不起作用。我尝试显式地设置env变量,方法是使用一条语句来设置(export),另一条语句用于运行我的go代码,其中我读取了env变量。这不管用。

代码语言:javascript
复制
test:
        export Sample="Help"
        go run main.go

与上面相同,在make文件中实现如下所示,我的go代码能够读取env变量。

代码语言:javascript
复制
test:
        Sample="Help" go run main.go

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-09-30 20:19:23

正如在其他注释中提到的,每一行都在单独的shell中运行,因此要从一个shell中获取变量的结果,您需要“链接”它们,如注释中所示。

我发现的另一种非常简洁的方法(并且避免了必须链接shell命令)是:

代码语言:javascript
复制
.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"

输出为:

代码语言:javascript
复制
TEST:  - not set outside the recipe
TEST (make) = 123
TEST (shell) = 123
TEST (in shell script) = 123
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69393909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档