snippet of configure script - explain please

Mel fbsd.questions at rachie.is-a-geek.net
Thu Jul 10 15:04:42 UTC 2008


On Thursday 10 July 2008 16:48:42 Malcolm Kay wrote:
> On Thu, 10 Jul 2008 09:45 pm, Mel wrote:
> > On Thursday 10 July 2008 06:24:46 Malcolm Kay wrote:
> > > >    9255 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" =
> > > > set"; }; then
> > >
> > > I find this line somewhat strange as I've not been able
> > > to find documentation for the expansion of ${parameter+set} under the
> > > Bourne shell. (nor bash, nor ksh)
> > > *****************************************************
> > > Presumably someone out there knows where to find it?
> > > *****************************************************
> >
> > It's shorthand for ${paramter:+set}, so if unset, you get "", otherwise
> > you get "set":
> > $ echo ${foo+set}
> >
> > $ echo ${HOME+set}
> > set
>
> So it appears; but is it stated anywhere that this shorthand is legitimate?
> I find it quite frequently arising from the GNU configuring tools but
> haven't found it elsewhere.
>
> Is it a deliberate shorthand or just a consequence of the way sh and bash
> happen to have been programmed? In other words is it a safe shorthand?
>
> Anyway thanks for the clarification,

Hmm, I'm not sure if the colon syntax came first. Autotools claims to create 
portable shell code, though they also claim to make software developer's 
lives easier.
The person to ask would probably be Doug Barton, since he's capable of writing 
things in shell, "normal" people would jump to a "real" language ;)
-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.


More information about the freebsd-questions mailing list