Keep in mind that AIUI we aim to be BourneShell compatible in which case $(
) is not available

On Fri 24 Mar 2017 at 22:15, Christian Schulte <c...@schulte.it> wrote:

> Am 03/24/17 um 22:51 schrieb Stephen Connolly:
> > I am concerned that there are some quoting issues in mvn.
> >
> > In some cases we use var=`command` and in others we use var="`command`"
> >
> > Additionally we have a mixture of backtick and $(...) style. My
> > understanding is that the backticks are for older shells...
> > but if that is the case we should use backticks consistently
> >
> > line 64: saveddir=`pwd`
> > should be? saveddir="`pwd`"
> >
> > line 66: MAVEN_HOME=`dirname "$PRG"`/..
> > should be? MAVEN_HOME="`dirname "$PRG"`/.."
> >
> > line 69: MAVEN_HOME=`cd "$MAVEN_HOME" && pwd`
> > should be? MAVEN_HOME="`cd "$MAVEN_HOME" && pwd`"
> >
> > line 105: CLASSWORLDS_JAR=`echo
> > "${MAVEN_HOME}"/boot/plexus-classworlds-*.jar`
> > should be? CLASSWORLDS_JAR="`echo
> > "${MAVEN_HOME}"/boot/plexus-classworlds-*.jar`"
> >
> > line 128:      basedir=$wdir
> > should be?      basedir="$wdir"
> >
> > line 145:         basedir=$(dirname "$(readlink -f "${arg}")")
> > should be?         basedir="$(dirname "$(readlink -f "${arg}")")"
> > (or perhaps)        basedir="$(cd "$(dirname "${arg}")" && pwd -P)"
> >
> > line 178:  MAVEN_PROJECTBASEDIR=`cygpath --path --windows
> > "$MAVEN_PROJECTBASEDIR"`
> > should be?  MAVEN_PROJECTBASEDIR="`cygpath --path --windows
> > "$MAVEN_PROJECTBASEDIR"`"
> >
> > /me got tired looking at the file after this point in time!
> >
>
> According to the "Expansion" section from the sh man page
> (<http://man.openbsd.org/sh>) the double quotes should be there to
> disable field splitting.
>
> [...]
> Command expansion has a command executed in a subshell and the results
> output in its place.  The basic format is:
>
> $(command)
>
>   or
>
> `command`
>
> The results are subject to field splitting and pathname expansion; no
> other form of expansion happens.  If command is contained within double
> quotes, field splitting does not happen either.  Within backquotes, a
> backslash is treated literally unless it follows a dollar sign,
> backquote, or another backslash.  Commands can be nested, though the
> backquoted version requires backslashes before the backquotes. If
> command is run in a subshell in the bracketed version, the syntax is
> identical to that of arithmetic expansion. In that case the shell
> attempts arithmetic expansion first, then attempts command substitution
> if that fails.  Or a non-ambiguous version can be used:
>
> $( (command) )
>
> Arithmetic expansion works similarly, with an arithmetic expression
> being evaluated and substituted. The format is:
>
> $((expression))
>
> Where expression is an integer, parameter name, or array reference,
> optionally combined with any of the operators described below, listed
> and grouped according to precedence:
> [...]
>
> Regards,
> --
> Christian
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
> --
Sent from my phone

Reply via email to