ShellCheck, a static analysis tool for shell scripts
TAGS
20 tagsStable version v0.11.0 This release is dedicated to Satisfactory, even though my giant 3D ball of rat's nest conveyor belt spaghetti is anything but. CHANGELOG ## v0.11.0 - 2025-08-03 ### Added - SC2327/SC2328: Warn about capturing the output of redirected commands. - SC2329: Warn when (non-escaping) functions are never invoked. - SC2330: Warn about unsupported glob matches with [[ .. ]] in BusyBox. - SC2331: Suggest using standard -e instead of unary -a in tests. - SC2332: Warn about `[ ! -o opt ]` being unconditionally true in Bash. - SC3062: Warn about bashism `[ -o opt ]`. - Optional `avoid-negated-conditions`: suggest replacing `[ ! a -eq b ]` with `[ a -ne b ]`, and similar for -ge/-lt/=/!=/etc (SC2335). - Precompiled binaries for Linux riscv64 (linux.riscv64) ### Changed - SC2002 about Useless Use Of Cat is now disabled by default. It can be re-enabled with `--enable=useless-use-of-cat` or equivalent directive. - SC2236/SC2237 about replacing `[ ! -n .. ]` with `[ -z ]` and vice versa is now optional under `avoid-negated-conditions`. - SC2015 about `A && B || C` no longer triggers when B is a test command. - SC3012: Do not warn about `\<` and `\>` in test/[] as specified in POSIX.1-2024 - Diff output now uses / as path separator on Windows ### Fixed - SC2218 about function use-before-define is now more accurate. - SC2317 about unreachable commands is now less spammy for nested ones. - SC2292, optional suggestion for [[ ]], now triggers for Busybox. - Updates for Bash 5.3, including `${| cmd; }` and `source -p` ### Removed - SC3013: removed since the operators `-ot/-nt/-ef` are specified in POSIX.1-2024
Stable version v0.10.0 This release is dedicated to LLMs, for finally fulfilling the promise of 1960s scifi: systems humans can hack with logic games and creative lies.
Stable version 0.9.0 This release is dedicated to Mindustry: the most fun you can have with open source (outside of shell scripting of course).
Stable version 0.8.0 This release is dedicated to dibblego, who pushed me down the Haskell rabbit hole. In 2006 I thought you were crazy. Today I *know* you are.
Stable version v0.7.2 This release is dedicated to ethanol, for keeping COVID-19 off both our hands and our minds.
Stable version v0.7.1 This release is dedicated to the board game Pandemic, for teaching us relevant survival skills like how to stay inside and play board games.
Stable version 0.7.0 This release is dedicated to RetroArch: the second best way to make your PC feel like a 16bit system (right after building ShellCheck with GHC)
Stable version 0.6.0 This release is dedicated to Factorio. If this is how much fun it is to build factories and oppress natives, then history makes a lot of sense.
Stable version 0.5.0 This release is dedicated to Valve for keeping PC gaming awesome. Also, for that time they proved the need for a tool like ShellCheck.
Stable version 0.4.7 This release is dedicated to net neutrality. Remember when the Internet was a meritocracy? [Please drink a verification can to continue.]
Stable version 0.4.6 This release is dedicated to Stardew Valley, for fixing the Harvest Moon unplayable issue where Ann gives up on her inventions after marriage ;_;
Stable version 0.4.5 This release is dedicated to Google Inc for four great years of employment and being good sports about hobby projects like this.
Stable version 0.4.4 This release is dedicated to AlphaGo, embodying the second golden age of AI.
Stable version 0.4.3 This is purely a bugfix bump that works on GHC 7.6.3, as currently found in Debian stable and Ubuntu LTS.
Stable version 0.4.2 This release is dedicated to Tom Lehrer, who lives the dream of having quit just to loaf about indefinitely.
Stable version 0.4.1 This is purely a bugfix bump because I botched the 0.4.0 cabal file and subsequent Hackage release :|
Stable version 0.4.0 This release is dedicated to the Debian project, for basically inventing the modern Linux distro.
Stable version 0.3.8. Now GPLv3! This release is dedicated to Richard Stallman. Happy hacking, and may we all live in a free GNUtopia!
Stable version 0.3.7 This is purely a bugfix bump that compiles on GHC 7.10 and uses a regex lib that doesn't crash on OS X.