You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确保执行GNU Make命令时必须传入ENV参数?

解决Makefile中强制要求传入ENV参数的问题

问题需求

执行make destroy命令时必须显式传入ENV参数(例如make destroy ENV=test),未传入时直接抛出错误;同时保留销毁前的确认提示(除非传入FORCE参数跳过确认)。

现有代码的问题

原代码中ENV ?=prod给ENV设置了默认值prod,导致ifndef ENV的判断永远不会触发,完全无法达到强制传参的目的。

修正后的代码

ifndef ENV
  $(error ENV参数未定义,请在命令中传入ENV参数,例如:make destroy ENV=test)
endif

ifndef FORCE
  @/bin/echo -n "确定要销毁${ENV}环境的配置吗?[y/N] " && read ans && [ $${ans:-N} = y ]
endif

terraform destroy ${ARGS}

代码说明

  • 第一部分:通过ifndef ENV检查是否传入了ENV参数,未传入则直接抛出错误并终止执行。
  • 第二部分:如果没有传入FORCE参数,会弹出交互式确认提示,只有用户输入y才会继续执行销毁操作。
  • 最后执行terraform destroy命令,同时支持传入自定义的ARGS参数扩展功能。

内容的提问来源于stack exchange,提问作者Alfred Hitchkock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:32:39