Date: Sun, 9 Sep 2007 12:35:40 -0700 From: Gary Kline <kline@tao.thought.org> To: Giorgos Keramidas <keramida@ceid.upatras.gr> Cc: Grant Peel <gpeel@thenetnow.com>, Garrett Cooper <youshi10@u.washington.edu>, freebsd-questions@freebsd.org, Gary Kline <kline@tao.thought.org> Subject: Re: csh if..then delhema. Message-ID: <20070909193540.GA3569@thought.org> In-Reply-To: <20070909131721.GA1859@kobe.laptop> References: <000801c7f274$6fae71e0$6501a8c0@GRANT> <20070909020657.GA4912@kobe.laptop> <46E367F7.6060705@u.washington.edu> <20070909081927.GB98684@thought.org> <006901c7f2e1$0067bb30$6501a8c0@GRANT> <20070909131721.GA1859@kobe.laptop>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Sep 09, 2007 at 04:17:21PM +0300, Giorgos Keramidas wrote:
> On 2007-09-09 08:57, Grant Peel <gpeel@thenetnow.com> wrote:
> > Thanks for the input gentlemen,
> > Interesting to that the question was posted by G(rant) and then
> > answered by G(ary), G(arrett) and G(iorgos)! (what are the odds!).
>
> Haha :)
>
> > Anywho, I am busily converting the script to perl as per the
> > suggestions. I use tcsh rarely, had I of known the quirks I woul shave
> > done it in perl from the beguining.
> >
> > As for Garrett's case method, it didnt work. Created a "case: Too many
> > arguments." error. Perhaps because it itself is nested in a 'foreach'
> > statement.
>
> `foreach' is a csh construct. If you copied the case/esac code posted
> by Garrett, then it wouldn't work. The syntax used by Garrett was for
> the Bourne shell (hence the /bin/sh reference above case).
>
> If you are going to convert everything to /bin/sh, you may as well
> convert it to Perl unless there is some very good reason to use only
> the pretty minimal data-structures supported by the Bourne shell
> (i.e. because you want to run the script in environments where Perl
> may be too much to require).
>
Do any of you gents know if there is a converter that turns
Bo[u]rne (:-)) shell into perl? Years ago there was
commericalware (i Think) that took /bin/sh to C. Maybe Ii'm
mis-remembering. I've googled aroud and find zip, so maybe I
was in some kind of coma-zone.
At any rate, for simple unix scripts, /bin/sh (aka "a-shell", ash)
or ksh or zsh is the way to go. Simple == a few lines.
For anything grittier, perl wins any time.
(And to save thebillions of flames that perl sux because it is
hard to read (blah, blah, blah), **comment your code**. )
Other flame to /dev/null, guys.
(G)ary [[ funny, jeez ]], LOL.
>
--
Gary Kline kline@thought.org www.thought.org Public Service Unix
http://jottings.thought.org http://transfinite.thought.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070909193540.GA3569>
