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

Makefile中实现交互式项目多选菜单 适配AWS多环境部署需求

实现方案

直接在现有Makefile基础上添加项目列表定义和交互逻辑即可,完整代码如下:

# 指定用bash执行任务,兼容select交互语法
SHELL := /bin/bash

# 原有环境和部署目标定义
ENVIRONMENTS := development staging production
TARGETS := $(foreach X,$(ENVIRONMENTS),deploy-$X)
# 新增可选项目列表定义,可按需修改
PROJECTS := api web somethingelse

$(TARGETS):
	$(eval ENV:=$(subst deploy-,,$(@)))
	# 交互式选择项目逻辑
	$(eval project:=$(shell \
		# 提示内容输出到stderr,避免被shell函数捕获导致用户看不到
		echo "Please select the project:" > /dev/stderr; \
		# 自动生成带编号的选择菜单
		select proj in $(PROJECTS); do \
			if [ -n "$$proj" ]; then \
				echo $$proj; \
				break; \
			else \
				echo "无效选项,请重新输入" > /dev/stderr; \
			fi; \
		done \
	))
	# 后续部署逻辑可直接使用 $(ENV) 和 $(project) 变量
	@echo "开始部署 $(project) 到 $(ENV) 环境"

功能说明

  • 执行make deploy-production等命令时,会直接输出你预期的选择提示,输入对应数字即可完成选择
  • 自带无效输入校验,用户输入非可选范围的内容时会提示重输,不会中断流程
  • 所有shell变量前加$$是为了避免被Make提前解析,属于Makefile调用shell的标准转义规则

内容的提问来源于stack exchange,提问作者Kristi Jorgji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 03:09:02