quote within $() 

Newsgroups:  comp.unix.shell
Date:        Sun, 16 Oct 2005 17:44:52 +0200
> How to quote within the "$()" in posix compatible shells?
>
> I tried all the following but none of them worked. I need the "$()"
> notation because it is actually part of my long expression that have more
> "$()" in it.
>
> fname='a b c'
> echo "$(basename $fname)"
> echo "$(basename '$fname')"
> echo "$(basename \"$fname\")"
> echo "$(basename ${fname})"

This is what I do in bash. I don't know the specifics of POSIX compliance.

echo "$(basename "$fname")"

Notice that the dquotes inside the $() do the right thing. I believe bash starts a recursive processing of the innards of $() in unquoted mode, but quotes the captured command output when pasting it into the echo command.

Enrique Perez-Terron

quote within $() 

fname='a  b c'
$ echo "$(basename "$fname")"
a  b c

documented on: 2005.10.16