[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: unbalanced parenthesis not recognized
From: |
Greg Wooledge |
Subject: |
Re: unbalanced parenthesis not recognized |
Date: |
Mon, 22 Nov 2021 07:39:45 -0500 |
On Mon, Nov 22, 2021 at 09:03:39AM +0100, Harald Dunkel wrote:
> > : ${SSLDIR}:="${JM_WORK}/ssl"}
> Surely I can just speak for myself, but to me it appears obvious that
> there is something weird and that there is one closing bracket too much
> in this line. I understand that bash doesn't produce an error about the
> entire line, because it is valid bash code.
Sure, a human (programmer) looking at this command might be able to
spot the error and guess what the intended command was.
Bash itself can't. As you said, it's a valid command, so bash has no
reason to complain about it.
Maybe what you want is a "linter" (e.g. shellcheck). Using the online
version <https://www.shellcheck.net/> gives me this result:
-------------------------------------------------------------------
Line 1:
: ${SSLDIR}:="${JM_WORK}/ssl"}
^-- SC2148 (error): Tips depend on target shell and yours is unknown. Add a
shebang or a 'shell' directive.
^-- SC2086 (info): Double quote to prevent globbing and word splitting.
^-- SC1083 (warning): This } is literal. Check
expression (missing ;/\n?) or quote it.
Did you mean: (apply this, apply all SC2086)
: "${SSLDIR}":="${JM_WORK}/ssl"}
-------------------------------------------------------------------
That's not too bad. Better than I expected, actually. The suggested
correction at the end isn't helpful, but the SC1083 warning in the
middle is.