Re: Bash script variables question[Scanned]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2006-08-06 at 13:27 -0400, Tom Diehl wrote:
> On Sun, 6 Aug 2006, Steven W. Orr wrote:
> 
> > On Sunday, Aug 6th 2006 at 22:05 +1000, quoth Cameron Simpson:
> >
> > =>On 06Aug2006 12:44, Chris Bradford <chrisbradford@xxxxxxxxxxxxxxxxxxxx> wrote:
> > =>| I changed
> > =>|
> > =>| ctime=/bin/date
> > =>| compname=hostname
> > =>|
> > =>| to:
> > =>|
> > =>| ctime="$(date)"
> > =>| compname="$(hostname)"
> > =>
> > =>BTW, you don't need the quotes. The assignment is parsed before the
> > =>values arrive. Eg, this works:
> > =>
> > =>	x='a b c'
> > =>	y=$x
> > =>
> > =>Also, just for other scripts, this:
> > =>
> > =>	foo=`command`
> > =>
> > =>is more portable than
> > =>
> > =>	foo=$(command)
> >
> > Never use backquotes when the $( cmd ) is available. The backquotes are
> > deprecated in bash and ksh and are only available in antique Bourne
> > shells. In addition there are subtle differences in quoting between the
> > two.
> 
> Any idea why the authors feel the need to break 20+ years of history? I fail to
> see why foo=`command` is better or worse than foo=$(command). I only have 17+ 
> years worth of sh, ksh, and bash scripts that use the foo=`command` construct.
> 
> Just to be clear I am not blaming anyone here for the change. I realize that
> this type of thing comes from upstream. I am just trying to understand why this
> type of thing is done.

It allows constructs like this:

$ var=$(foo $(bar))

Paul.



[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux