14 comments

[ 2.9 ms ] story [ 47.2 ms ] thread
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.

It's pretty clearly a play on words...
I don't get it, what's it playing on?
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).

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.

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

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.
Finally, something to do with all those install scripts that pipe the output of curl to bash!
I was rewriting a bunch of custom scrips a few months ago and would have been lost without this tool finding my mistakes.