bash-scripting 是做什么的?
用于创建生产级 Shell 脚本的 Bash 脚本编写工作流,包含防御性模式、错误处理和测试。
主要特性
- 防御性编程:启用严格模式(
set -euo pipefail)以自动捕获未定义变量、管道错误等。 - 错误处理:使用
trap命令捕获脚本退出信号,执行清理或调试操作。 - 静态分析:集成 ShellCheck 对脚本进行 lint 检查,发现常见问题。
- 测试框架:推荐使用 bats 进行单元测试,确保脚本功能正确。
- 文档生成:支持从脚本注释自动生成使用说明。
使用方法
- 在脚本顶部添加以下严格模式设置:
set -euo pipefail - 定义错误处理函数:
trap 'echo "错误发生在第 $LINENO 行"; exit 1' ERR - 使用 ShellCheck 检查语法:
shellcheck your_script.sh - 编写 bats 测试用例:
#!/usr/bin/env bats @test "测试脚本成功执行" { run ./your_script.sh [ "$status" -eq 0 ] }
最佳实践
- 始终使用
set -euo pipefail来避免静默错误。 - 为每个函数编写明确的输入验证。
- 使用
bash -n script.sh进行语法检查。 - 使用
bash -x script.sh调试脚本执行过程。
平台支持
- Linux (所有发行版)
- macOS
- WSL (Windows Subsystem for Linux)
依赖
- Bash 4.0+
- ShellCheck (可选但推荐)
- bats (用于测试)
贡献
欢迎提交问题和拉取请求。请确保遵守防御性编程原则,并为新功能添加测试。