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.