Skip to main content

shell-check

ShellCheck静态分析技能:使用ShellCheck进行Shell脚本代码质量分析,检测语法错误、潜在缺陷、代码风格问题

インストールへ移動

ソース情報

リポジトリ
hellyguo/self-ai-spec
ソースの最終更新活動
2026年7月16日 13:23
検出された SKILL.md の言語
中国語
スター
8
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
shell-check
description
ShellCheck静态分析技能:使用ShellCheck进行Shell脚本代码质量分析,检测语法错误、潜在缺陷、代码风格问题
# ShellCheck Shell脚本静态分析技能 ## 工具位置 ```bash SHELLCHECK=/usr/bin/shellcheck # 版本: ShellCheck 0.10.0 ``` ## 执行流程 ### 步骤1:确定脚本文件 ```bash SCRIPT_FILE=script.sh # 单个文件 SCRIPT_DIR=scripts/ # 目录下的所有脚本 ``` ### 步骤2:执行分析 ```bash # 基础检查 $SHELLCHECK script.sh # 检查目录下所有脚本 $SHELLCHECK scripts/*.sh # 指定Shell方言 $SHELLCHECK --shell=bash script.sh $SHELLCHECK --shell=sh script.sh $SHELLCHECK --shell=dash script.sh $SHELLCHECK --shell=ksh script.sh ``` ### 步骤3:指定输出格式 ```bash $SHELLCHECK --format=json script.sh > shellcheck.json $SHELLCHECK --format=json1 script.sh > shellcheck-detail.json $SHELLCHECK --format=checkstyle script.sh > shellcheck.xml $SHELLCHECK --format=gcc script.sh $SHELLCHECK --format=quiet script.sh ``` ### 步骤4:生成报告 使用模板 `templates/report.md` 输出分析报告。 ## 常用参数 | 参数 | 描述 | 示例 | |------|------|------| | `-s, --shell` | 指定Shell方言 | `--shell=bash` | | `-S, --severity` | 最小严重级别 | `--severity=error` | | `-e, --exclude` | 排除特定警告 | `-e SC2086,SC2034` | | `-i, --include` | 只包含特定警告 | `-i SC2086,SC2034` | | `-a, --check-sourced` | 检查source的文件 | `--check-sourced` | | `-x, --external-sources` | 允许外部source | `--external-sources` | | `-o, --enable` | 启用可选检查 | `--enable=all` | | `-f, --format` | 输出格式 | `--format=json` | ## 严重级别 | 级别 | 描述 | |------|------| | `error` | 错误,必须修复 | | `warning` | 警告,建议修复 | | `info` | 信息,可选修复 | | `style` | 风格,可选修复 | ## 排除警告 ### 行内排除 ```bash # shellcheck disable=SC2086 echo $var # shellcheck disable=SC2086,SC2034 echo $var # shellcheck disable-next=SC2086 echo $var ``` ### 命令行排除 ```bash $SHELLCHECK -e SC2086,SC2034 script.sh $SHELLCHECK -i SC2086 script.sh ``` ### 配置文件(.shellcheckrc) ```text disable=SC2086 shell=bash source-path=SCRIPTDIR enable=require-variable-braces ``` ## 常用可选检查 | 检查项 | 描述 | |--------|------| | `require-variable-braces` | 要求变量使用大括号 | | `add-default-case` | case语句需要默认分支 | | `quote-safe-variables` | 引用安全的变量 | | `useless-use-of-cat` | 检测无用的cat使用 | ## 典型使用场景 | 场景 | 命令 | |------|------| | 快速检查 | `$SHELLCHECK --severity=error script.sh` | | 完整检查 | `$SHELLCHECK --enable=all --severity=style script.sh` | | CI集成 | `$SHELLCHECK --format=gcc --severity=warning scripts/*.sh` | | 检查sourced文件 | `$SHELLCHECK --check-sourced --source-path=scripts script.sh` | ## 最佳实践 1. 始终用双引号引用变量 2. 优先使用`[[ ]]`而非`[ ]` 3. 优先使用`$( )`而非反引号 4. 检查cd等命令的返回值 5. 脚本开头设置`set -e` --- **技能版本**: 1.0.0 **工具版本**: ShellCheck 0.10.0 **适用项目**: Shell脚本(bash/sh/dash/ksh)
GitHubで見る