如何在makefile配方中设置环境变量?

2023-11-22

这是一个简化的 Makefile:

all:
    @for (( i = 0; i < 5; ++i )); do \
         var="$$var $$i"; \
         echo $$var; \
     done
    @echo $$var

我认为“var”的值是“0 1 2 3 4”,但输出是:

0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
               <--- NOTHING!!!

正如你所看到的,最后的回声是“NOTHING”。怎么了?


From here:

当需要执行配方来更新目标时,它们是通过为配方的每一行调用一个新的子 shell 来执行的......

请注意:这意味着设置 shell 变量并调用 shell 命令,例如cd设置每个进程的本地上下文不会影响配方中的以下行。如果你想使用cd要影响下一个语句,请将两个语句放在一个配方行中。然后make将调用一个 shell 来运行整行,并且 shell 将按顺序执行语句。

请尝试以下操作:

all:
    @for (( i = 0; i < 5; ++i )); do \
         var="$$var $$i"; \
         echo $$var; \
     done; \
    echo $$var
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在makefile配方中设置环境变量? 的相关文章

随机推荐

  • iOS 12 短信阅读 API?

    在 iOS 12 的 Beta 版本中 我观察到它在键盘建议中提供了 OTP 来自短信 那么他们有没有为开发者创建任何API 或者这只是操作系统的一个功能 这是操作系统功能 但您需要设置UITextField的输入视图textContent
  • PHP 结束标记“?>”[重复]

    这个问题在这里已经有答案了 我在 PHP 结束标记上遇到了一个有趣的现象 我有一个由 Ajax 调用执行的 php 文件 php 文件中包含一个具有各种功能的 php 库文件 当包含这个库时 php 响应包含一堆空行 当我从库中删除结束标签
  • 将fortran双精度格式读取到python中

    我试图将像 1 2345D 02 这样的 Fortran 双精度数读入 python 但出现以下错误 gt gt gt float 1 2345D 02 Traceback most recent call last File
  • 一旦完成,这个可运行的线程最后会发生什么?

    我有这个线程从服务器下载一些图像 因此 一旦它下载了图像 我就会调用处理程序并进行 UI 更新 因此 由于线程的 stop 已被弃用 我无法使用它 我在这里有两个问题 这个线程最终会发生什么 意味着在我调用处理程序方法之后它会发生什么 或者
  • 将系列作为新行添加到 DataFrame 中会触发 FutureWarning

    尝试添加新行类型Series into a DataFrame 两者共享相同的列 索引 df loc df shape 0 r Getting FutureWarning 在未来版本中 object dtype 列将带有 all bool
  • 有没有办法使用 SQL Server JDBC 驱动程序显示 PRINT 结果?

    如果我的存储过程中有一个 print 语句 print message 有没有办法获取通过 JDBC 连接到 SQL Server 2008 的 java 程序的输出 另外 是否有危险print当从 JDBC 应用程序调用时 留下用于调试的
  • 确定 Rails 中某个方法所属的类

    Ap Application routes draw do resources accounts end 我想知道 resources 方法所属的类或模块 如果我在中搜索 资源 方法http apidock com rails 在提供的搜索
  • map.setCenter() 函数无法正常工作

    这是代码
  • 处理作曲家废弃包的最佳实践是什么?

    当我运行作曲家更新时 我偶尔会收到软件包已被放弃的消息 我应该使用不同的软件包 例如Package webflo drupal core require dev is abandoned you should avoid using it
  • 上传文件在更新面板中不起作用

    我不想刷新或回发我的页面 所以我尝试在 updatepanel 中上传文件 但单击上传按钮时验证检查显示没有文件 我的html代码是
  • C++14 变量模板:它们的用途是什么?有使用示例吗?

    C 14 将允许创建模板化变量 通常的例子是变量 pi 可以读取它来获取各种类型的数学常数 的值 3 表示int 最接近的值可能是float etc 除此之外 我们只需将变量包装在模板化结构或类中即可获得此功能 这如何与类型转换混合 我看到
  • 如何从 woocommerce 获取商品的库存数量?

    我在正确显示库存数量时遇到了一些问题 这是循环 span class price PREIS span class amount span span
  • 如何追踪内存峰值? (这是带有 p 的峰值,而不是带有 l 的峰值。)

    我有一个信息亭应用程序 它本质上显示了一堆幻灯片 其中包含各种信息 我最初是在一年前开始编写这个代码的 当时我刚开始从事 Objective C 和 iOS 开发 我发现我的代码风格现在比以前干净多了 而且我的经验也丰富了 所以我决定从头开
  • Angular2 传递函数作为组件输入不起作用

    我有一个以函数作为输入的组件 我已经从父级传递了这个函数 尽管调用了该函数 但该函数无法访问声明该函数的实例的依赖项 这是组件 Component selector custom element template val export cl
  • WCF ChannelFactory 与生成代理

    只是想知道当您可以使用 ChannelFactory 调用时 在什么情况下您更愿意从 WCF 服务生成代理 这样你就不必生成代理并担心服务器更新时重新生成代理了 Thanks 创建 WCF 客户端有 3 种基本方法 让 Visual Stu
  • 限制ManyToManyField的最大选择

    我试图限制模型记录在 ManyToManyField 中可以拥有的最大选择数量 在此示例中 有一个可以与区域相关的博客站点 在此示例中 我想将博客站点限制为只能有 3 个区域 这似乎是以前被问过 回答过的问题 但经过几个小时的探索后 我还没
  • Helm 图表之间的依赖关系是否应该反映微服务之间的依赖关系?

    给定以下服务方案及其依赖项 我想设计一组 Helm 图表 API Gateway calls Service A and Service C Service A calls Service B Service B calls Databas
  • ASP.NET Identity 2.0:如何重新哈希密码

    我正在 ASP NET 5 0 Web 应用程序中将用户从旧用户存储迁移到 ASP NET Identity 2 0 我有一种验证旧哈希值的方法 但我想在登录时将它们升级到 ASP NET Identity 2 0 哈希值 我创建了一个自定
  • 使用 MemoryStream 写入 XML

    我注意到有两种不同的方法将数据写入 XML 文件 为简洁起见 省略了错误处理 第一种方法是构建 XML 文档 然后将 XML 保存到文件中 using XmlWriter writer XmlWriter Create fileName w
  • 如何在makefile配方中设置环境变量?

    这是一个简化的 Makefile all for i 0 i lt 5 i do var var i echo var done echo var 我认为 var 的值是 0 1 2 3 4 但输出是 0 0 1 0 1 2 0 1 2 3