【问题标题】:What does @+SKIP_ENV=true mean in this Makefile?这个 Makefile 中的 @+SKIP_ENV=true 是什么意思?
【发布时间】:2022-01-25 05:35:28
【问题描述】:

我正在修改 this 项目,其中第 6 步要求我运行类似 make db-prepare-artix7 的命令。此命令对应于 Makefile 的 this 部分。我对食谱中的@+SKIP_ENV=true 感到困惑。这里的@+SKIP_ENV 是什么,它有什么作用?找不到任何引用 SKIP_ENV 的地方。

谢谢!

【问题讨论】:

  • SKIP_ENV 是 shell 变量的名称。在以下 shell 命令 source... 的上下文中,该变量设置为 true
  • @Andreas 谢谢,我在发布之前找到了答案。它帮助我了解了 @ 和 +,但没有告诉我 SKIP_ENV=true 在做什么,这就是我问的原因。
  • @RenaudPacalet 但我找不到SKIP_ENV 的定义位置。有趣的是,制作SKIP_ENV=false 似乎并没有改变结果,而完全删除SKIP_ENV=true(所以该行以source... 开头)会导致AssertionError 关于丢失的文件,但以下update_parts.py 运行正确.
  • @NoobAdmin 因为SKIP_ENV 是在采购另一个shell 脚本的上下文中定义的,并且仅出于此目的,如果您真的想了解它的用途,您可能应该查看这个其他脚本.

标签: variables makefile command gnu-make symbols


【解决方案1】:

解释每个部分:

  • @ 表示在配方执行期间 Make 不会回显该命令
  • + 表示即使在空运行期间也会执行命令:make --dry-run ...
  • SKIP_ENV=true 是 sh(ell) 语法,用于在随后的命令期间将环境变量 SKIP_ENV 设置为字符串 true
    • 在您的情况下,source ... 命令
    • SKIP_ENV 的效果取决于命令 - 深入挖掘发现

【讨论】:

  • 谢谢!我找到了SKIP_ENVhere。在这种情况下,只要将变量设置为某个值,变量的值就无关紧要。不管怎样,谢谢你的回答,现在我可以继续研究这个项目了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 2021-04-11
  • 1970-01-01
  • 2020-01-30
相关资源
最近更新 更多