I'm getting shellcheck suggestion SC2806 i.e. Double quote to prevent globbing and word splitting for $JAVA_OPTS.
When I apply that to my code
java $JAVA_OPTS -Dhttps.proxyHost=%PROXY_HOST%
I get the 503 Error Back-end server busy error. The ec2 instance activity reports that the instance health check failed.
But when I don't use "" to $JAVA_OPTS, then it works and I get 200 OK response and everything works.
when I echoed $JAVA_OPTS it echoed as empty.
What could be the reason for this?
The other answer explains what causes the issue.
Here’s how to fix it: instead of passing
$JAVA_OPTS(either quoted or unquoted) tojava, pass${JAVA_OPTS:+"$JAVA_OPTS"}. This will cause the parameter expansion only if it is non-empty. If$JAVA_OPTSis empty, no expansion will be passed to the command.See the documentation for more information about the
:+expansion.