技能bash-pro
B

bash-pro

精通生产自动化、CI/CD流水线及系统工具中的防御性Bash脚本编写。擅长打造安全、可移植且可测试的Shell脚本解决方案。

Bash Pro - 防御性脚本编程与生产级自动化

技能概述

Bash Pro 专注于编写安全、可靠、可移植的生产级 Bash 脚本,涵盖 CI/CD 自动化、系统工具和防御性编程最佳实践。

适用场景

  1. CI/CD Pipeline 脚本开发 为 GitHub Actions、GitLab CI 等 CI/CD 平台编写可靠的部署和自动化脚本,确保构建流程稳定可重复。

  2. 自动化运维与系统管理 编写日常系统维护任务的自动化脚本,包括日志处理、文件管理、服务监控等,强调错误处理和安全加固。

  3. 脚本安全审查与加固 对现有 shell 脚本进行安全审查,使用 ShellCheck 静态分析识别潜在漏洞,添加输入验证和防护措施。

核心功能

  1. 防御性编程与错误处理 应用 set -Eeuo pipefail 严格模式、变量引用防护、trap 信号处理和全面的输入验证,确保脚本在异常情况下安全退出。

  2. 跨平台可移植性保障 处理 Linux 与 macOS 工具差异(如 sed -i)、检测 Bash 版本兼容性、提供 POSIX fallback 实现和平台条件分支。

  3. 完整的测试与质量保证 使用 Bats 或 shellspec 编写单元测试、集成 ShellCheck 和 shfmt 到开发流程、配置 pre-commit hooks 和 CI 检查。

常见问题

什么时候应该使用 Bash 而不是 Python?

Bash 适合调用系统命令、处理文件和进程、编写简单的自动化任务。如果涉及复杂逻辑、数据结构或跨平台 GUI,Python 是更好的选择。Bash Pro 也明确指出不适用于需要纯 POSIX sh 或 Windows PowerShell 的场景。

如何避免 Bash 脚本中的常见安全漏洞?

始终引用变量展开 $var 为 "$var"、避免使用 eval 处理用户输入、使用 [[ ]] 进行条件判断、用 mktemp 安全创建临时文件、对输入进行白名单验证。ShellCheck 可以自动检测许多这类问题。

set -e 为什么不够用?

set -e 在管道命令、子shell 和函数调用中行为复杂。Bash Pro 推荐使用 set -Eeuo pipefail 配合 shopt -s inherit_errexit,并使用 trap 显式捕获错误,确保所有异常都能被正确处理。