From owner-freebsd-questions@FreeBSD.ORG Thu Jul 10 15:04:42 2008 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5AB141065672 for ; Thu, 10 Jul 2008 15:04:42 +0000 (UTC) (envelope-from fbsd.questions@rachie.is-a-geek.net) Received: from snoogles.rachie.is-a-geek.net (rachie.is-a-geek.net [66.230.99.27]) by mx1.freebsd.org (Postfix) with ESMTP id 33D258FC1C for ; Thu, 10 Jul 2008 15:04:42 +0000 (UTC) (envelope-from fbsd.questions@rachie.is-a-geek.net) Received: from localhost (localhost [127.0.0.1]) by snoogles.rachie.is-a-geek.net (Postfix) with ESMTP id 157D31CD94; Thu, 10 Jul 2008 07:04:41 -0800 (AKDT) From: Mel To: freebsd-questions@freebsd.org Date: Thu, 10 Jul 2008 17:04:39 +0200 User-Agent: KMail/1.9.7 References: <20080709172513.GA51206@mech-cluster238.men.bris.ac.uk> <200807101415.51455.fbsd.questions@rachie.is-a-geek.net> <200807110018.43081.malcolm.kay@internode.on.net> In-Reply-To: <200807110018.43081.malcolm.kay@internode.on.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200807101704.40038.fbsd.questions@rachie.is-a-geek.net> Cc: Anton Shterenlikht Subject: Re: snippet of configure script - explain please X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2008 15:04:42 -0000 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.