SuperAPI AI 工具集

bash-ops

智能体与模型

查看项目

更新于 10-15 19:49

技能介绍

用途:为无人值守运行的 Bash 脚本(CI 步骤、自动化、技能自带脚本)提供防御式编写标准,目标是脚本在首个问题处大声失败、不破坏状态、输出可解析。

主要能力:

  1. 严格模式:脚本前三行使用 #!/usr/bin/env bash、set -Eeuo pipefail、IFS=$'\n\t',并说明各标志的收益与边界(如 set -e 在 if/&&/|| 中不触发;空数组在旧 Bash 下触发 -u)。
  2. 引号纪律:所有展开加引号,转发参数用 "$@",操作数前加 --,避免分词与通配展开。
  3. 参数解析:用 while/case 循环处理 GNU 风格长标志(--json、--dry-run),--help 退出 0 并含 EXAMPLES,未知标志报 USAGE 错误退出 2。
  4. 陷阱与清理:mktemp 创建临时文件后立即 trap cleanup EXIT,采用 tmp+mv 原子写入。
  5. 流分离与退出码契约:stdout 只输出数据(--json 时 JSON,否则纯文本/TSV),stderr 输出标题、进度、警告、错误;语义退出码 0 成功、2 用法、3 未找到、4 校验、5 前置条件、7 不可用、10+ 领域信号。
  6. ShellCheck 与格式:shellcheck script.sh、shellcheck -x、shfmt -i 2 -ci -w,CI 中 shellcheck **/*.sh 须干净通过,bash -n 做语法检查。
  7. 常见陷阱表与 Bash 版本说明:如未加引号的 $var、[ ] 与 [[ ]]、var=$(cmd) 后 $? 语义、管道 while 子 shell、local x=$(cmd) 掩盖失败、echo 处理任意数据、for f in $(ls)、pipefail 与 head 的 141 等;mapfile、关联数组、${var,,}、wait -n、local -n 等特性需 Bash 4.x+,macOS 自带 3.2 需规避或加版本守卫。

使用方式:新脚本可复制 assets/script-template.sh 作为起点;参考实现为 skills/supply-chain-defense/scripts/preinstall-check.sh。脚本超过约 100 行、需要数据结构、非整数运算或真正解析字符串时,应改用 Python(python-cli-ops 技能)。

适用场景:CI 步骤、生产自动化、智能体面向的工具脚本、技能自带脚本。

限制:资料未提供安装命令、收费、价格、平台支持范围与效果数据;部分规则依赖 Bash 版本,需按文档守卫或声明要求。