Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
ShellCheck – Online shell script analyzer (shellcheck.net)
27 points by npongratz on Aug 15, 2014 | hide | past | favorite | 14 comments


See also the version you can compile yourself and run in the terminal, written in Haskell:

https://github.com/koalaman/shellcheck


Does it work better than bash -n?


The messages it gives are far more descriptive than bash -n. Plus it includes links so you can learn more about why it's a possible problem.


This is definitely helpful. At the very least for showing things that may get interpreted wrong (well, right, but wrong from the intention) in scripts.


I was rewriting a bunch of custom scrips a few months ago and would have been lost without this tool finding my mistakes.


Finally, something to do with all those install scripts that pipe the output of curl to bash!


Why don't you call it what it is? bash / sh checker rather than shellcheck. Or do you plan to add other shells?

Ksh, csh, rc, tsh - not everyone uses bash.


From the source code:

https://github.com/koalaman/shellcheck/blob/master/ShellChec...

shellForExecutable "sh" = return Sh

shellForExecutable "ash" = return Sh

shellForExecutable "dash" = return Sh

shellForExecutable "ksh" = return Ksh

shellForExecutable "ksh88" = return Ksh

shellForExecutable "ksh93" = return Ksh

shellForExecutable "zsh" = return Zsh

shellForExecutable "bash" = return Bash

shellForExecutable _ = Nothing


Their about page[0] says "ShellCheck is a static analysis and linting tool for sh/bash scripts."

[0]http://www.shellcheck.net/about.html


It's pretty clearly a play on words...


I don't get it, what's it playing on?


Its name might be a play on "spellcheck". When I first read it quickly, my eyes bounced over the "h" and my brain filled in a "p".

Personally, I enjoy cleverness like this.


idk if it's a play on something -- but all of the things you mentioned above are still called a "shell", even if it's not the standard "sh" shell.

and, from parts of the source code, it appears it may work with ksh, zsh, etc. (i don't have a sample handy to try though).


not for me, I use rc




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: