SuperAPI AI 工具集

shell-best-practices

编程与开发

查看项目

更新于 10-16 01:26

技能介绍

用途:指导编写健壮、可维护且安全的 Shell 脚本,适用于从零编写新脚本、审查现有脚本、重构遗留代码、调试失败原因、提升安全性与可移植性以及建立错误处理机制。

主要能力与要点: 脚本基础:按需选择 shebang,如 #!/usr/bin/env bash、#!/bin/bash 或 #!/bin/sh;建议启用严格模式 set -euo pipefail,调试时可加 set -x,并提供脚本头模板。 变量处理:变量加引号避免分词与通配展开;使用有意义的名称;用 ${NAME:-default}、${NAME:?msg} 等设置默认值或报错;常量用 readonly,函数内用 local。 错误处理:定义有意义的退出码;用 trap cleanup EXIT 做清理;提供 error、warn、die 等错误输出函数;校验输入参数与文件存在性、可读性。 函数:为函数写注释说明参数与返回值;既可返回状态,也可通过命令替换捕获输出。 条件与循环:Bash 中用 [[ ]] 测试、(( )) 做算术;遍历文件时正确处理空格,如 for file in *.txt 后加 [[ -e "$file" ]] || continue;读取行用 while IFS= read -r line;递归用 find -print0 配合 read -r -d ''。 数组:使用 declare -a 索引数组、declare -A 关联数组(Bash 4+);展开时加引号,如 "${array[@]}";判断空数组或键是否存在。 命令执行:用 command -v 检查命令是否存在;用 $() 而非反引号;可同时捕获输出与状态码。 可移植性:对比 POSIX 与 Bash 在测试语法、数组、参数替换、正则、算术等方面的差异,并给出 [ ]、sed、空格分隔字符串等替代写法。 安全:避免 eval 以防注入;校验输入格式;使用 mktemp 创建临时文件或目录并配合 trap 清理。 日志:提供按级别记录的 log 函数,支持写入日志文件;通过 VERBOSE 变量开启调试输出,如 VERBOSE=true ./script.sh。

使用方式与限制:资料以指南与代码模板形式给出,未提供安装命令、收费或平台信息,暂未提供相关内容。