Curious bash evaluation
Marvin Kosmal
mkosmal at gmail.com
Mon Dec 27 16:13:44 UTC 2010
On 12/27/10, Rodolfo Alcazar Portillo <nospaze at gmail.com> wrote:
> Hello. See this:
>
> # A="echo 'hi'"
>
> # echo $($A)
> 'hi'
>
> # echo 'hi'
> hi
>
> Does anyone understand why does the first command
> evals the echo but echoes the simple quotes?
>
> Is there any dark shopt option which makes it run correctly?
>
> Thanks...
> ----------------------------------------------
> Rodolfo Alcazar Portillo - nospaze at gmail.com
> otbits.blogspot.com / counter.li.org: #367962
> ----------------------------------------------
> # unzip; strip; touch; finger; grep; mount; fsck; more; yes; fsck; fsck;
> fsck; umount; sleep
>
>
I will do the short explanation
This expression does what I call Double expansion
echo $($A)
First it expands echo HI
Then it does the echo which yields HI
In your second command
echo 'hi'
It just echos hi .. like it should
Sorry, if this doesn't sound real elegant.. Someone will give a
better description
HTH
Marvin J. Kosmal
Disclaimer: This email is not intended to provide medical advice,
diagnosis or treatment. Views expressed here do not necessarily
reflect those of Farmer Marvin or any of the hens.
More information about the users
mailing list