Shell Expert 是一个针对 Shell 脚本、命令行工具和自动化的专家型技能,目标是提供健壮、可移植且高效的解决方案。以下按其用途、主要能力、使用方式、适用场景与限制整理。
一、用途 该技能面向 Shell 脚本开发、命令行工具使用与自动化实践,强调写得稳健、可移植且高效。
二、主要能力
- 命令行工具掌握:覆盖现代 CLI 工具(jq、yq、fd、rg 等)的专家级知识,包括 JSON/YAML 处理与转换、文件搜索与文本操作、系统自动化与编排。
- 脚本编写:POSIX 兼容的 Shell 脚本以获得最大可移植性;Bash 特有功能与最佳实践;错误处理与防御式编程;跨平台兼容(Linux、macOS、BSD)。
- 自动化与集成:CI/CD 流水线脚本、系统管理自动化、工具集成与工作流自动化、Shell 操作的性能优化。
- 关键能力细项:
- JSON/YAML 处理:jq 复杂 JSON 查询、转换与过滤;yq 的 YAML 操作、原地编辑、格式转换;jd 的 JSON diff 与 patch;通过工具串联构建数据管道。
- 文件操作与搜索:fd 快速查找文件;rg(ripgrep)支持 gitignore 的递归搜索;lsd 作为现代 ls 替代;以及何时使用现代替代品替换 find/grep。
- 脚本开发:错误处理(trap 使用、退出码、错误传播)、输入校验(参数解析、选项处理、用户输入清理)、调试(-x、-e、-u、-o pipefail 等选项与调试输出策略)、性能(进程替换、并行执行、高效循环)。
- 跨平台脚本:平台检测、可移植路径构造与操作、依赖工具可用性检查与缺失处理、兼容层编写。
- 自动化模式:幂等操作、原子操作、进度报告、结构化日志与监控。
三、使用方式 资料提供了常用命令示例:
- jq 处理 JSON:jq . data.json 美化输出;jq -r '.key.subkey' data.json 提取值;jq '.items[] | select(.status == "active")' 过滤。
- yq 处理 YAML:yq '.services.web.image' docker-compose.yml 读取值;yq -i '.version = "2.1.0"' config.yml 原地更新;yq -o json config.yml 转换为 JSON。
- fd 查找文件:fd 'pattern' 按模式查找;fd -e md 按扩展名查找;fd -e sh -x shellcheck {} 查找并执行。
- rg 递归搜索:rg 'DATABASE_URL' 基础搜索;rg 'TODO' -t python 搜索特定文件类型;rg -C 3 'error' 带上下文搜索。
资料还给出脚本开发工作流:需求分析、工具选择、原型开发、错误处理、跨平台测试、性能优化、文档编写。关键准则包括:始终使用 shellcheck 进行静态检查;设置严格模式 set -euo pipefail;所有变量加引号 "${var}";使用函数复用代码;用 trap 实现清理;提供有用的错误信息;包含 --help 与 --version 选项;使用有意义的变量名;为复杂逻辑加注释;面向 POSIX 时在不同 Shell 中测试。
资料还提供了健壮的脚本模板(含 shebang、set -euo pipefail、IFS 设置、trap ERR/EXIT 与 cleanup、main 函数与参数解析、环境校验、任务执行)以及跨平台检测函数示例(根据 OSTYPE 判断 linux、macos、windows、unknown)。并提示如需详细的命令行工具参考、进阶自动化示例与排错指导,可参阅 REFERENCE.md。
四、适用场景 适用于 Shell 脚本开发、命令行工具使用、JSON/YAML 数据处理、文件查找与文本搜索、CI/CD 脚本、系统管理自动化、跨平台脚本编写等场景。
五、限制 资料未提供该技能的具体收费、价格、平台支持范围、实际效果或软件依赖要求等信息,这些内容暂未提供。