用途
本技能面向 Shell 脚本编写,提供 bash/zsh 的最佳实践与常用模式。当需要编写自动化脚本、创建 CLI 工具、执行系统管理任务、编写构建与部署脚本、进行日志处理与分析、文件操作与批量处理,或设置 cron 定时任务时,可使用本技能。
主要能力
- 脚本结构:提供标准模板,包含 shebang、脚本说明注释、
set -euo pipefail、IFS设置、常量定义(SCRIPT_DIR、SCRIPT_NAME)、默认值、usage/log/error函数以及main入口。 - 错误处理:介绍
set -e、set -u、set -o pipefail、set -x等选项;使用trap进行清理并处理INT/TERM信号;提供命令存在性、文件、目录、变量及退出状态等检查模式。 - 变量与替换:涵盖默认值展开(
:-、:=、:+、:?)、字符串前后缀删除与替换、长度获取;数组与关联数组的声明、访问、遍历、追加及键存在性检查。 - 控制流与循环:字符串/数值比较、文件测试、逻辑运算符;for、while、进程替换、C 风格 for 循环。
- 输入输出:用户输入、隐藏密码、超时读取、逐行读文件;stdout/stderr 重定向、丢弃输出、
tee。 - 文本处理:find 结合 grep、CSV 逐行处理、jq 处理 JSON、awk 与 sed 常用一行命令。
- 最佳实践:给出应做与不应做的清单,如引用变量、使用
[[ ]]、使用$(command)、检查返回值、使用readonly与local、提供--help、使用有意义的退出码;避免解析ls输出、对不可信输入使用eval、假设路径无空格、忽略 shellcheck 警告、编写单一巨型脚本。
使用方式
资料以技能文档形式提供,包含可直接参考的代码模板与示例片段,例如脚本模板、错误处理模式、变量展开语法、数组操作、条件与循环写法、输入输出重定向以及文本处理一行命令。文档还列出参考文件 references/one_liners.md,用于查阅实用一行命令。
适用场景
自动化脚本、CLI 工具、系统管理、构建与部署、日志处理与分析、文件操作与批量处理、cron 定时任务。
限制
资料未提供安装命令、运行环境要求、版本兼容性、收费或价格信息,也未说明具体平台支持范围,这些内容暂未提供。