koalaman / shellcheck
git clone https://github.com/koalaman/shellcheck.git
v0.11.0 · 1y ago
🔥 on GitHub Trending today
ShellCheck, a static analysis tool for shell scripts
+9
stars, 24h · #374
+46
stars, 7 days · #969
+179
stars, 30 days · #1,400
40k
★ total · +0% this week
2.0k
forks · 1.1k open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageHaskell
LicenseGPL-3.0
Created2012-11-17 (13y ago)
Last push1d ago
Watchers410
OwnerUser
Seen on GitHub Trending
- 2026-10-20 — #1 daily in haskell · +9 ★
- 2026-10-20 — #2 monthly in haskell · +179 ★
- 2026-10-20 — #5 weekly in haskell · +46 ★
GitHub topics
Links
- GitHub: github.com/koalaman/shellcheck
- Homepage: https://www.shellcheck.net
- Releases · Issues · Hacker News mentions
README excerpt
# ShellCheck - A shell script static analysis tool ShellCheck is a GPLv3 tool that gives warnings and suggestions for bash/sh shell scripts: The goals of ShellCheck are * To point out and clarify typical beginner's syntax issues that cause a shell to give cryptic error messages. * To point out and clarify typical intermediate level semantic problems that cause a shell to behave strangely and counter-intuitively. * To point out subtle caveats, corner cases and pitfalls that may cause an advanced user's otherwise working script to fail under future circumstances. See the gallery of bad code for examples of what ShellCheck can help you identify! ## Table of Contents * How to use * On the web * From your terminal * In your editor * In your build or test suites * Installing * Compiling from source * Installing Cabal * Compiling ShellCheck * Running tests * Gallery of bad code * Quoting * Conditionals * Frequently misused commands * Common beginner's mistakes * Style * Data and typing errors * Robustness * Portability * Miscellaneous * Testimonials * Ignoring issues * Reporting bugs * Contributing * Copyright * Other Resources ## How to use There are a number of ways to use ShellCheck! ### On the web Paste a shell script on for instant feedback. ShellCheck.net is always synchronized to the latest git commit, and is the easiest way to give ShellCheck a go. Tell your friends! ### From your terminal Run `shellcheck yourscript` in your terminal for instant output, as seen above. ### In your editor You can see ShellCheck suggestions directly in a variety of editors. * Vim, through ALE, Neomake, or Syntastic: . * Emacs, through Flycheck or Flymake: . * Sublime, through SublimeLinter. * Pulsar Edit (former Atom), through linter-shellcheck-pulsar. * VSCode, through vscode-shellcheck. * Most other editors, through GCC error compatibility. ### In your build or test suites While ShellCheck is mostly intended for interactive use, it can easily be added to builds or test suites. It makes canonical use of exit codes, so you can just add a `shellcheck` command as part of the process. For example, in a Makefile: [code] or in a Travis CI `.travis.yml` file: [code] Services and platforms that have ShellCheck pre-installed and ready to use: * Travis CI * Codacy * Code Climate * Code Factor * Codety via the Codety Scanner * CircleCI via the ShellCheck Orb * Github (only Linux) * Trunk Code Quality (universal linter; allows you to explicitly version your shellcheck install) via the shellcheck plugin * CodeRabbit Most other services, including GitLab, let you install ShellCheck yourself, either through the system's package manager (see Installing), or by downloading and unpacking a binary release. It's a good idea to manually install a specific ShellCheck version regardless. This avoids any surprise build breaks when a new version with new warnings is published. For customized filtering or reporting, ShellCheck can output simple JSON, CheckStyle com