SIGN IN SIGN UP
koalaman / shellcheck UNCLAIMED

ShellCheck, a static analysis tool for shell scripts

39175 0 1 Haskell
2013-06-18 09:29:39 -07:00
Name: ShellCheck
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
2025-08-03 16:19:11 -07:00
Version: 0.11.0
2014-01-13 19:14:18 -08:00
Synopsis: Shell script analysis tool
2015-06-20 09:52:07 -07:00
License: GPL-3
2013-06-18 09:29:39 -07:00
License-file: LICENSE
Category: Static Analysis
2013-06-18 09:29:39 -07:00
Author: Vidar Holen
Maintainer: vidar@vidarholen.net
Homepage: https://www.shellcheck.net/
Build-Type: Simple
Cabal-Version: 1.18
2014-01-13 19:14:18 -08:00
Bug-reports: https://github.com/koalaman/shellcheck/issues
Description:
The goals of ShellCheck are:
.
* To point out and clarify typical beginner's syntax issues,
that causes a shell to give cryptic error messages.
.
* To point out and clarify typical intermediate level semantic problems,
that causes 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.
tested-with: GHC == 8.0, GHC == 8.10, GHC == 9.0.1, GHC == 9.4.7, GHC == 9.6.6
2026-02-09 13:16:26 +09:00
Extra-Doc-Files:
README.md
CHANGELOG.md
Extra-Source-Files:
-- documentation
shellcheck.1.md
-- A script to build the man page using pandoc
manpage
-- convenience script for stripping tests
striptests
-- tests
test/shellcheck.hs
2014-01-13 19:14:18 -08:00
source-repository head
type: git
location: https://github.com/koalaman/shellcheck.git
2013-06-18 09:29:39 -07:00
library
2018-03-08 19:57:40 +02:00
hs-source-dirs: src
2018-04-02 11:44:18 -05:00
if impl(ghc < 8.0)
build-depends:
semigroups
build-depends:
2022-12-11 12:29:05 -08:00
-- The lower bounds are based on GHC 7.10.3
2025-07-22 14:40:25 -07:00
-- The upper bounds are based on GHC 9.12.1
aeson >= 1.4.0 && < 2.3,
2022-12-11 12:29:05 -08:00
array >= 0.5.1 && < 0.6,
base >= 4.8.0.0 && < 5,
bytestring >= 0.10.6 && < 0.13,
2025-07-22 14:40:25 -07:00
containers >= 0.5.6 && < 0.9,
deepseq >= 1.4.2 && < 1.6,
2024-11-03 13:56:51 -08:00
Diff >= 0.4.0 && < 1.1,
fgl (>= 5.7.0 && < 5.8.1.0) || (>= 5.8.1.1 && < 5.9),
2024-11-03 14:19:08 -08:00
filepath >= 1.4.0 && < 1.6,
mtl >= 2.2.2 && < 2.4,
2022-12-11 12:29:05 -08:00
parsec >= 3.1.14 && < 3.2,
QuickCheck >= 2.14.2 && < 2.17,
2022-12-11 12:29:05 -08:00
regex-tdfa >= 1.2.0 && < 1.4,
transformers >= 0.4.2 && < 0.7,
2022-12-11 12:29:05 -08:00
-- getXdgDirectory from 1.2.3.0
directory >= 1.2.3 && < 1.4,
-- When cabal supports it, move this to setup-depends:
process
exposed-modules:
ShellCheck.AST
ShellCheck.ASTLib
ShellCheck.Analytics
ShellCheck.Analyzer
ShellCheck.AnalyzerLib
ShellCheck.CFG
ShellCheck.CFGAnalysis
ShellCheck.Checker
ShellCheck.Checks.Commands
ShellCheck.Checks.ControlFlow
ShellCheck.Checks.Custom
2016-11-12 15:51:36 -08:00
ShellCheck.Checks.ShellSupport
ShellCheck.Data
ShellCheck.Debug
2018-12-17 20:14:49 -08:00
ShellCheck.Fixer
ShellCheck.Formatter.Format
ShellCheck.Formatter.CheckStyle
2019-06-23 19:05:12 -07:00
ShellCheck.Formatter.Diff
ShellCheck.Formatter.GCC
ShellCheck.Formatter.JSON
ShellCheck.Formatter.JSON1
ShellCheck.Formatter.TTY
ShellCheck.Formatter.Quiet
ShellCheck.Interface
ShellCheck.Parser
ShellCheck.Prelude
2015-04-04 16:26:28 -07:00
ShellCheck.Regex
other-modules:
Paths_ShellCheck
2025-10-08 09:05:07 +09:00
default-language: Haskell2010
2013-06-18 09:29:39 -07:00
executable shellcheck
2018-04-02 11:44:18 -05:00
if impl(ghc < 8.0)
build-depends:
semigroups
build-depends:
aeson,
array,
2022-12-11 12:29:05 -08:00
base,
bytestring,
containers,
2022-12-11 12:29:05 -08:00
deepseq,
Diff,
directory,
fgl,
2022-12-11 12:29:05 -08:00
mtl,
2019-03-03 18:53:43 -08:00
filepath,
2022-12-11 12:29:05 -08:00
parsec,
QuickCheck,
2019-03-03 18:53:43 -08:00
regex-tdfa,
transformers,
2019-03-03 18:53:43 -08:00
ShellCheck
2025-10-08 09:05:07 +09:00
default-language: Haskell2010
2013-06-18 09:29:39 -07:00
main-is: shellcheck.hs
test-suite test-shellcheck
type: exitcode-stdio-1.0
build-depends:
aeson,
array,
2022-12-11 12:29:05 -08:00
base,
bytestring,
containers,
2022-12-11 12:29:05 -08:00
deepseq,
Diff,
directory,
fgl,
2019-03-03 18:53:43 -08:00
filepath,
2022-12-11 12:29:05 -08:00
mtl,
parsec,
2022-12-11 12:29:05 -08:00
QuickCheck,
2019-03-03 18:53:43 -08:00
regex-tdfa,
transformers,
2019-03-03 18:53:43 -08:00
ShellCheck
2025-10-08 09:05:07 +09:00
default-language: Haskell2010
main-is: test/shellcheck.hs