ShellCheck, a static analysis tool for shell scripts
Go to file
guywithnose ad08bb64aa Add cabal update to install instructions
Before I ran `cabal update` I got this on `cabal install`

```
Config file path source is default config file.
Config file ~/.cabal/config not found.
Writing default configuration to ~/.cabal/config
Warning: The package list for 'hackage.haskell.org' does not exist. Run 'cabal
update' to download it.
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: ShellCheck-0.3.2
```
2014-04-01 11:48:09 -04:00
ShellCheck Check for accidentally overriding $PATH 2014-03-29 10:07:23 -07:00
test Added ulimit to test script because lol debugging 2012-11-19 23:24:24 -08:00
.gitignore Added a shellcheck(1) man page 2013-12-16 00:04:31 +01:00
LICENSE Added readme and licenses 2012-11-16 19:43:05 -08:00
Makefile Tweaked man page format 2013-12-15 19:40:05 -08:00
README.md Add cabal update to install instructions 2014-04-01 11:48:09 -04:00
Setup.hs Cleaned up cabal file to make 'cabal check' pass. 2014-01-19 13:03:05 -08:00
ShellCheck.cabal Stable version 0.3.2 2014-03-22 11:05:27 -07:00
shellcheck.1.md Added -s to the man page 2014-02-02 21:56:04 -08:00
shellcheck.hs Some hlint fixes. 2014-02-16 12:57:34 -08:00

README.md

ShellCheck - A shell script static analysis tool

http://www.shellcheck.net

Copyright 2012-2014, Vidar 'koala_man' Holen Licensed under the GNU Affero General Public License, v3

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.

ShellCheck requires at least 1 GB of RAM to compile. Executables can be built with cabal. Tests currently still rely on a Makefile.

Building with Cabal

Make sure cabal is installed. On Debian based distros:

apt-get install cabal-install

On Fedora:

yum install cabal-install

On Mac OS X with homebrew (http://brew.sh/):

brew install cabal-install

On Mac OS X with MacPorts (http://www.macports.org/):

port install hs-cabal-install

With cabal installed, cd to the shellcheck source directory and:

$ cabal update
$ cabal install
...
$ which shellcheck
~/.cabal/bin/shellcheck

Building with Make

ShellCheck is written in Haskell, and requires GHC, Parsec3, JSON and Text.Regex. To run the unit tests, it also requires QuickCheck2.

On Fedora, these can be installed with:

yum install ghc ghc-parsec-devel ghc-QuickCheck-devel \
  ghc-json-devel ghc-regex-compat-devel

On Ubuntu and similar, use:

apt-get install ghc libghc-parsec3-dev libghc-json-dev \
  libghc-regex-compat-dev libghc-quickcheck2-dev

To build and run the tests, cd to the shellcheck source directory and:

$ make

Happy ShellChecking!