Date: Wed, 21 Aug 2002 09:48:19 +0200 From: Neil Blakey-Milner <nbm@mithrandr.moria.org> To: Luigi Rizzo <rizzo@icir.org> Cc: arch@freebsd.org Subject: Re: ugliness in rc.* scripts Message-ID: <20020821074819.GA58163@mithrandr.moria.org> In-Reply-To: <20020820232538.A53816@iguana.icir.org> References: <20020820232538.A53816@iguana.icir.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue 2002-08-20 (23:25), Luigi Rizzo wrote:
> Hi,
> in various rc.* scripts we have multiple instances of
> constructs like this:
> 
> 	case ${some_config_variable} in
> 	[Mm][Ii][Xx][Ed]_[Cc][Aa][Ss][Ee]_[Ss][Tt][Rr][Ii][Nn][Gg])
> 		....
> 
> which is not the most desirable thing in terms of readability.
> This would be easily fixed by moving /usr/bin/tr to /bin/tr (statically
> linked) and doing
> 
> 	tolower() {
> 	    echo `tr A-Z a-z <<_EOF
> 	$*`
> 	}
> 
> 	case `tolower ${some_config_variable}` in
> 	mixed_case_string)
> 		...
> 
> 
> (btw, i am not sure why, in the above example the _EOF delimited
> is not required nor i can find any place to put it without being
> processed as stdin. Perhaps a bug in /bin/sh ?)
> 
> Anyways, should we go for this ? I believe our scripts would be
> greatly improved.
I believe the argument for 'case' and those mixed case strings is that
it doesn't spawn a process, whereas "if [ " did at the time.  Using
'echo' and 'tr' and two ``'s will spawn four shells (or something like
that).
Neil
-- 
Neil Blakey-Milner
nbm@mithrandr.moria.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020821074819.GA58163>
