Date: Wed, 31 Dec 2003 12:55:22 +1030 From: "Rob" <listone@deathbeforedecaf.net> To: "Daniela" <dgw@liwest.at>, <questions@freebsd.org> Subject: Re: Complex quoting task in tcsh Message-ID: <00d601c3cf45$57d07c40$a4b826cb@goo> References: <200312290334.25341.dgw@liwest.at><009801c3cdc9$88507280$a4b826cb@goo> <200312310133.53578.dgw@liwest.at>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 31 December 2003, Daniela <dgw@liwest.at> wrote: > On Monday 29 December 2003 05:06, Rob wrote: > > Daniela, > > > > This isn't the answer you would like, but tcsh is generally considered a > > bad language for writing scripts*. It's an excellent command-line shell, > > but scripts are not its strong point. > > > > One reason is the one you've just run into - quoting is a little flakey, > > especially when you try to do something tricky. > > > > For 'basic' scripts, either sh(1) or ksh(1) is usually the way to go. As > > an example, here's your line-checking question, using sh and FreeBSD > > commands: > > > > cat somefile | while read LINE ; do > > if echo "$LINE" | grep -q '^#' ; then > > # do something with $LINE > > fi > > done > > Thanks a lot, that grep -q thing also works for tcsh. > Excellent! > > > For more complex work, perl or python are usually recommended. > > You can do lots of stuff with shellscript: look at user.berklix.org/~dgw > Absolutely - the whole /etc/rc structure for example. I guess what I meant by 'complex' was string matching & manipulation. If I'm writing a shell script that uses awk and sed to chop things up, it starts to get clumsy and hard to read. At that point I'll usually turn it into a perl script. > > > On the other hand, if you just want to filter the comments out of a > > file, put > > > > grep -v '^#' > > > > at the start of your pipeline. > > > > * Csh Programming Considered Harmful (1996) > > http://www.perl.com/pub/a/language/versus/csh.html > > Csh is not harmful at all -- it allows for great optimizing for certain tasks. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?00d601c3cf45$57d07c40$a4b826cb>