用途:面向系统管理员与后端工程师,帮助编写可在生产环境中行为可预测的防御性 Bash 脚本,并用于审查与调试 shell 脚本。
核心做法:脚本以 set -euo pipefail 开头,遇错、未定义变量和管道隐藏失败时快速失败;预期会失败的命令用 command || true 或 if ! command; then ... 处理。变量一律加双引号并写成 "${FILE_PATH}" 形式,避免词拆分与通配问题。条件判断优先用 [[ ]] 而非 POSIX [ ]。函数内变量用 local,避免全局命名污染。命令替换用 $() 而非反引号。
结构与约定:函数定义风格保持一致;局部变量用 lower_snake_case,环境与全局常量用 UPPER_SNAKE_CASE;创建临时文件或后台进程时用 trap 清理,如 TMP_DIR=$(mktemp -d) 配合 trap 'rm -rf "${TMP_DIR}"' EXIT;错误信息输出到 stderr(>&2)。
需避免的反模式:不要解析 ls 输出(文件名可能含空格、换行等),改用通配或 find;不要用 echo 输出可能含连字符的变量,改用 printf '%s\n' "${var}";不要用 cat 把单文件管道进命令(UUOC),改用输入重定向或把文件作为参数。
资料还给出三组示例:安全的变量引用、遍历文件时跳过无匹配并打印处理信息、函数内使用 local 变量。
限制:资料未提供该技能支持的具体平台、安装方式、收费或价格信息,这些暂未提供。