Is there some option I can give to just check the syntax of a [bash] shell script to check the syntax of it, but not actually execute anything nor cause any potential damage?
2 Answers
From the bash(1) man page:
-n      Read commands but do not execute them. This may be used to check a
        shell script for syntax errors. This is ignored by interactive shells.
- 
        Obviously. I don’t know why I was so blind that I couldn’t see this when I was through the manual pages.Daniel– Daniel2011-05-25 21:34:31 +00:00Commented May 25, 2011 at 21:34
Try out http://www.shellcheck.net
$ shellcheck myscript.sh
    In myscript.sh line 590:
    for f in $*; do
    ^-- SC1009: The mentioned parser error was in this for loop.
    In myscript.sh line 617:
        if [ ! -e "$somefile".vcf ]; then
        ^-- SC1046: Couldn't find 'fi' for this 'if'.
        ^-- SC1073: Couldn't parse this if expression.
    In myscript.sh line 1026:
    done
    ^-- SC1047: Expected 'fi' matching previously mentioned 'if'.
        ^-- SC1072: Unexpected keyword/token. Fix any mentioned problems and try again.
Well, it did not tell me the 'if' was missing on line 634 but it was pretty helpful.
- 
        It's also worth noting that you can download and run it locally, it runs in Haskell.phk– phk2017-04-14 19:17:12 +00:00Commented Apr 14, 2017 at 19:17