CheckOps
ShellCheck
ShellCheck is a GPL-3.0 static analysis tool for bash and sh scripts that warns about quoting bugs, syntax errors, pitfalls and portability issues with explanations.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
ShellCheck is a static analysis tool for shell scripts. It finds syntax issues that confuse beginners, semantic problems that cause strange behaviour, and subtle pitfalls that can break otherwise working scripts under certain conditions.
Each warning has a code such as SC2086 with a wiki page explaining the problem and fix, which makes it a teaching tool as well as a linter. Classic finds include unquoted variables, useless use of cat, wrong test syntax and portability issues between bash, dash and POSIX sh. It runs online, from the CLI, in editors and inside other tools like actionlint.
In the quality loop ShellCheck guards deployment and CI scripts that often have no tests.
The source code is at koalaman/shellcheck on GitHub under the GPL-3.0 licence, with about 40,300 stars; the most recent commit was on 9 November 2026.
Features
- Quoting checks: Catches word-splitting bugs.
- Explained warnings: Wiki page for every code.
- Dialects: bash, sh, dash and ksh.
- Directives: Inline disables.
- Output formats: gcc, JSON, checkstyle, diff.
- Online playground: shellcheck.net.
Pros
- High value: Finds real bugs in scripts.
- Free to use: Open source under the GPL-3.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 9 November 2026.
- Community: About 40,300 GitHub stars.
Cons
- Shell only: No other languages.
- Some false positives: Dynamic scripts may need directives.
- Haskell build: Building from source is unusual; use packages.
Usage and Links (Example)
shellcheck -s bash scripts/*.sh
Resources:
Pricing
ShellCheck is free and open source under the GPL-3.0 licence.
Recommended for?
- Anyone writing shell scripts.
- DevOps teams with deployment scripts.
Conclusion
ShellCheck is essential for shell scripts.
Add it to every repository that contains them.
On CheckOps, ShellCheck is filed under the Release & CI gates stage. Related tools listed here include actionlint, Hadolint, MegaLinter, Super-Linter, pre-commit and Semgrep. Which one fits best depends mostly on your stack, your team’s size and skills, and whether you prefer to run tools yourself or pay for a managed service. This page reflects the official website, documentation and repository as they stood on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with ShellCheck side by side.
Aactionlintactionlint is an MIT static checker for GitHub Actions workflow files that catches syntax errors, bad expressions, type mismatches and shell script issues via ShellCheck.Compare with ShellCheck
HHadolintHadolint is a GPL-3.0 Dockerfile linter written in Haskell that checks best practices and validates inline bash in RUN instructions using ShellCheck.Compare with ShellCheck
MMegaLinterMegaLinter is an AGPL-3.0 open-source linter orchestrator from OX Security that runs a large set of linters, formatters and security scanners across many languages in one Docker-based CI job.Compare with ShellCheck
SSuper-LinterSuper-Linter is an MIT ready-to-run collection of linters and code analysers packaged as a GitHub Action and container, validating many languages in parallel.Compare with ShellCheck
Ppre-commitpre-commit is an MIT framework for managing multi-language Git pre-commit hooks, running linters, formatters and checks before code is committed and in CI.Compare with ShellCheck
SSemgrepSemgrep is a fast static-analysis engine with a free open-source CLI and a paid platform for cross-file rules, supply chain, and secrets.Compare with ShellCheck