Agent Skills
返回列表
💻

Gum 交互式 Shell 脚本工具包

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/gum-interactive-shell-script-toolkit。

技能介绍

脚本交互的痛点

传统 shell 脚本在终端里往往只能"哑巴式"输出,要么让用户手动编辑配置文件再保存,要么脚本运行到中途卡住等待输入。要实现一个像样的交互式 CLI 体验——比如让用户选菜单、确认操作、输入参数——开发者需要手写大量 read 循环、case 分支和错误处理逻辑,代码容易变得臃肿且难以维护。尤其是当脚本需要展示结构化数据(表格、进度条、彩色输出)时,光是处理终端颜色和排版就够折腾半天。

Gum 如何解决问题

Gum 的思路是把常用的终端 UI 组件做成可以直接在 bash 里调用的命令。核心能力包括:

  • gum choose:从列表中选择一项或多项,支持过滤和限制数量
  • gum confirm:弹出确认框,替代简陋的 read -p 交互
  • gum input:带提示和默认值的文本输入
  • gum filter:类似 fzf 的模糊搜索输入框
  • gum spin:在命令执行期间显示加载动画,改善等待体验
  • gum table:以表格形式展示结构化数据
  • gum format:统一的文字着色、斜体、加粗等样式

使用时只需在 shell 脚本中链式调用这些命令即可。例如,用 gum choose 让用户选择要卸载的包,再把结果传给 xargs brew uninstall,整个交互流程几行代码就能搞定。

适用边界

Gum 本质上是对底层 TUI 库的封装,适合命令行工具和自动化脚本场景。如果你的 UI 需求超出了终端范围(比如需要桌面 GUI 或 Web 界面),Gum 帮不上忙。另外,脚本执行依赖终端环境,在 CI/CD 管道或非交互式 SSH 会话中,组件的交互式 UI 可能无法正常渲染,需要考虑降级方案,比如检测是否为 TTY 再决定是否调用 Gum。

使用场景

  • 自动化部署脚本需要用户选择目标服务器和确认操作步骤
  • 批量文件处理工具需要交互式输入参数并显示处理进度
  • 运维脚本需要用表格展示服务状态并输入目标实例ID
  • 开发工具链需要集成交互式选项卡选择构建配置

适合人员

  • DevOps工程师需要为部署脚本添加交互式选项和进度反馈
  • 后端开发者需要为内部CLI工具构建用户友好的交互界面
  • 系统管理员需要将重复性操作封装成带确认提示的自动化脚本
  • DevOps工程师需要用表格和颜色区分生产环境服务状态