What’s New

ShellCheck

Developer Tools

Static analysis for shell scripts, catching common bugs.

Latest v0.11.0 · by ShellCheckWebsitekoalaman/shellcheck

Changelog

v0.11.0

Stable 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
v0.10.0

Stable version v0.10.0

This release is dedicated to LLMs, for finally fulfilling the promise of 1960s scifi: systems you can hack using logic games and creative lies.

v0.9.0

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).

v0.8.0

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.

v0.7.2

Stable version v0.7.2

This release is dedicated to ethanol, for keeping COVID-19 off both our hands and our minds.

v0.7.1

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.

v0.4.7

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.]

v0.5.0

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.

v0.6.0

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.

v0.7.0

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)

Discussion