David Aguilar <dav...@gmail.com> writes:

> I have a question. John mentioned that we can replace the use of
> "$(..)" with $(..) in shell.

I think it isn't so much about $(...) but more about quoting the RHS
of assignment.

Consider these:

        var="$another_var"
        var="$(command)"
        var="$one_var$two_var"
        var="$another_var$(command)"

all of which _can_ be done without dq around the RHS, because the
result of variable substitution and command substitution will not be
subject to further word splitting.

I however find it easier to read with dq around the latter two, i.e.
substitution and then concatenation of the result of substitution.
The extra dq makes the intent of the author clearer, especially
while reviewing a script written by other people whose understanding
of the syntax I am not sure about ;-).  Between var=$another and
var="$another", the latter is slightly preferrable for the same
reason.

One questionable case is:

        var=$(command "with quoted parameter")

It makes it a bit harder to scan if there is an extra set of dq
around RHS, i.e.

        var="$(command "with quoted parameter")"

That case is easier to read without dq around it, or you could cheat
by doing this:

        var="$(command 'with quoted parameter')"

In any case, as long as the result is correct, I do not have very
strong preference either way.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to