Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 09 Oct 2010 22:25:01 -0700
From:      Julian Elischer <julian@freebsd.org>
To:        freebsd-hackers@freebsd.org
Subject:   Re: sysrc -- a sysctl(8)-like utility for managing /etc/rc.conf et. al.
Message-ID:  <4CB14E2D.3070806@freebsd.org>
In-Reply-To: <238E0B24-AA12-4684-9651-84DA665BE893@vicor.com>
References:  <1286397912.27308.40.camel@localhost.localdomain>	<AANLkTikoohMo5ng-RM3tctTH__P6cqhQpm=FPhSE9mMg@mail.gmail.com>	<51B4504F-5AA4-47C5-BF23-FA51DE5BC8C8@vicor.com>	<AANLkTim=BLkd229vdEst8U0ugpq3UsHPxjZZp2qaJxH-@mail.gmail.com> <238E0B24-AA12-4684-9651-84DA665BE893@vicor.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  Ah grasshoppers...

/me wonders if anyone will get the full significance of that..


On 10/9/10 3:39 PM, Devin Teske wrote:
> On Oct 9, 2010, at 1:25 PM, Garrett Cooper wrote:
>
>
>> Why not just do...
>>
>> if [ "x$rc_conf_files" = x -o "x$varname" = x ]
>> then
>>     return ${FAILURE-1}
>> fi
> I think you'll find (quite pleasantly) that if you intonate the lines...
>
> 	"rc_conf_files [is non-null] OR return failure"
> 	"varname [is non-null] OR return failure"
>
> Sounds a lot better/cleaner than the intonation of the suggested replacement:
>
> 	"if x plus rc_conf_files expands to something that is not equal to x OR x plus the expansion of varname is not x then return failure"
>


For what it matters, I'v enever found the [ "x$foo" = "x" ] construct 
to be useful.
the quoting seems to work for everything I've ever worked on.
so "officially" I'd express it as:

if [ -n  "$rc_conf_files" -o  -n "$varname" ]

but if I were hacking I'd probably express it as

if [ "$rc_conf_files" != "" ] || [ "$varname" != "" ]
then
    .....

I also sometimes find the use of the (()) operator to be useful.

Now One thing that should be bourne in mind (heh) is that
as there is a 'usual' form of format for perl there is one for sh as 
well so it's not "polite"
to make one's sh code look like perl.  :-)










Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CB14E2D.3070806>