shellcheck

写 shell 脚本前跑一下,自动揪出坑和隐患

ShellCheck 是一款用 Haskell 编写的 shell 脚本静态分析工具。它不执行脚本,而是通过语法树分析,找出脚本中的错误、警告和潜在风险,并给出具体的改进建议。它解决的是 shell 脚本难以调试、易出错的问题,能帮助开发者在运行前发现诸如未加引号的变量、语法错误、常见陷阱等问题。核心能力包括对 bash/sh 等 shell 的深度解析,提供清晰的错误定位和解释,并支持与编辑器、CI 集成。

开源 free 编程开发
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 40136
维护状态 活跃
是否开源 是
定价模式 free

项目预览

项目数据

分类编程开发
开发团队koalaman
所属国家
定价模式free
价格说明完全免费开源,提供在线网页版和命令行工具
访问状态
是否开源是
开源协议GPL-3.0
主要语言Haskell
技术栈/模型bash,developer-tools,haskell,linter,shell,static-analysis
GitHub 星标★ 40136
30天Star增速
HF 下载量
上线时间2012-11-17 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-22
浏览次数14

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 10 分钟 部署方式:命令行工具 6 步

环境要求

  • 一台可联网的机器,按系统选择对应包管理器(apt/pacman/dnf/brew/choco 等)
  • 如需从源码编译:Haskell 工具链 Cabal 或 Stack
  • 如使用 Linux 预编译包:需安装 xz(Debian 系 apt install xz-utils,RedHat 系 yum -y install xz)
  • 如不想本地安装:可用 Docker(镜像 koalaman/shellcheck:stable)

安装与启动步骤

  1. 1用包管理器安装

    按自己的系统选择对应的一条命令执行,这是 README 推荐的最简单本地安装方式

    sudo apt install shellcheck
    pacman -S shellcheck
    emerge --ask shellcheck
    dnf install ShellCheck
    brew install shellcheck
    choco install shellcheck
    winget install --id koalaman.shellcheck
    scoop install shellcheck
    conda install -c conda-forge shellcheck
    snap install --channel=edge shellcheck
  2. 2Docker 免安装运行

    无需本地安装,把脚本所在目录挂载到容器 /mnt,myscript 换成你的脚本文件名

    docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable myscript
  3. 3安装预编译二进制

    Linux 上可下载官方 tar.xz 包,解压后把 shellcheck 复制到 /usr/bin,scversion 可改为 v0.4.7 或 latest

    scversion="stable"
    wget -qO- "https://github.com/koalaman/shellcheck/releases/download/${scversion?}/shellcheck-${scversion?}.linux.x86_64.tar.xz" | tar -xJv
    cp "shellcheck-${scversion}/shellcheck" /usr/bin/
    shellcheck --version
  4. 4从源码编译安装

    需要先装好 Cabal 或 Stack;Cabal 装到 ~/.cabal/bin,Stack 装到 ~/.local/bin

    cabal update
    cabal install ShellCheck
  5. 5验证安装并检查脚本

    用 --version 确认安装成功,再对目标脚本运行 shellcheck 查看告警与改进建议

    shellcheck --version
    shellcheck yourscript.sh
  6. 6接入编辑器或 CI

    README 提到可在编辑器内和构建/测试套件中使用 ShellCheck,具体插件与流水线配置请参考对应工具的文档

关键配置

配置项必填说明示例
scversion否预编译二进制安装脚本中指定的版本号stable

如何确认成功

执行 shellcheck --version,能正常输出版本信息即安装成功;再对脚本运行 shellcheck yourscript.sh 可看到检查结果

常见问题

Q:不想安装能直接用吗?

A:可以。用 Docker 一条命令即可:docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable myscript,把 myscript 换成你的脚本名。

Q:Windows 上怎么安装?

A:README 给出三种方式:choco install shellcheck、winget install --id koalaman.shellcheck、scoop install shellcheck,任选其一。

Q:解压预编译包时报 xz 相关错误怎么办?

A:说明缺少 xz。Debian/Ubuntu/Mint 执行 apt install xz-utils,RedHat/Fedora/CentOS 执行 yum -y install xz 后再重试。

Q:Cabal 和 Stack 装完后命令在哪?

A:Cabal 安装到 ~/.cabal/bin,Stack 安装到 ~/.local/bin,若命令找不到请把对应目录加入 PATH。

Q:如何从源码跑测试?

A:在源码目录执行 cabal test 即可运行单元测试套件。

注意事项

  • Docker 运行时脚本必须位于当前目录,因为 $PWD 被挂载到容器的 /mnt。
  • 预编译二进制以 tar.xz 形式发布,解压前请确保系统已安装 xz。
  • Cabal 与 Stack 的安装目录不同,安装后可能需要手动配置 PATH。
  • README 未给出编辑器插件和 CI 的具体配置命令,需自行查阅对应工具文档。

核心亮点

  • 能发现变量未加引号、语法错误等 200 多种常见问题,并给出具体行号和修改建议
  • 支持 bash/sh/dash/ksh 等多种 shell,兼容性广
  • 可与 VS Code、Vim、CI 工具集成,在开发流程中自动检查

不足之处

  • 对非 bash 的 shell 支持有限,部分检查项仅适用于 bash
  • 文档/社区待观察

适用场景

  • 编写或维护 bash 部署脚本时,快速排查潜在错误
  • 在 CI 流水线中集成,阻止有问题的脚本合并
  • 教学或代码审查中,帮助新手理解 shell 脚本的常见陷阱

替代项目

Shellharden、shfmt、bashate

项目介绍

shellcheck 是编程开发领域的开源项目,由 koalaman 开发,2012 年首次发布。

在全站 13,752 个收录项目中,它的 GitHub 星标数(40,136)位列前 1%,在编程开发分类的 536 个项目里位列前 3%。

近 45 天,它的 GitHub 星标从 39,904 增加到 40,136,净增 232。

项目目前处于活跃维护状态,最近一次代码更新于 2026-10-03。完全免费开源,提供在线网页版和命令行工具。从国内网络环境看,可直接访问。

它主要面向的使用场景是:编写或维护bash部署脚本时,快速排查潜在错误。同类可对比的替代方案包括 Shellharden、shfmt、bashate。

上一篇:it-tools

下一篇:Gitea 代码托管

同类项目推荐

bolt.new 开源

想到啥说啥,网页应用当场生成直接能用

Prompt, run, edit, and deploy full-stack web applications. -- bolt.new -- Help Cente···

★ 16571 2026-08-09
fuzz4all 开源

用大模型自动生成测试输入,发现各种软件漏洞

️Fuzz4All: Universal Fuzzing with Large Language Models

★ 338 2026-08-09
ponytail 开源

教 AI 学会偷懒,不写代码反而更快交付

Makes your AI agent think like the laziest senior dev in the room. The best code is ···

★ 155837 2026-08-09
pi-agent-desktop 开源

下载即用的桌面 AI 编程助手,免配置免命令行

Pi — A cross-platform AI coding agent, bringing the Claude Code experience to your ···

★ 480 2026-09-25