Date: Wed, 21 Aug 2002 09:52:52 -0600 (MDT) From: "M. Warner Losh" <imp@bsdimp.com> To: nbm@mithrandr.moria.org Cc: rizzo@icir.org, arch@FreeBSD.ORG Subject: Re: ugliness in rc.* scripts Message-ID: <20020821.095252.61131232.imp@bsdimp.com> In-Reply-To: <20020821074819.GA58163@mithrandr.moria.org> References: <20020820232538.A53816@iguana.icir.org> <20020821074819.GA58163@mithrandr.moria.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20020821074819.GA58163@mithrandr.moria.org>
Neil Blakey-Milner <nbm@mithrandr.moria.org> writes:
: 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).
Why not just have
case -i ${some_config_variable} in
to do the case folding. This would be a backwards compatible extension:
The syntax of the case command is
case word in
pattern) list ;;
...
esac
where word is singular, not plural (like in the for loop syntax).
Warner
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?20020821.095252.61131232.imp>
