tcsh fix

Avleen Vig lists-freebsd at silverwraith.com
Thu Nov 11 21:55:44 PST 2004


On Fri, Nov 12, 2004 at 04:11:22AM +0100, Erik Trulsson wrote:
> Personally I am of the opinion that csh (all versions) should be
> removed completely from the base system and relegated entirely to the
> ports system. Other than historical reasons there is not much point in
> having it in the base system.

I strongly disagree. csh and sh should be 'pure' versions. That is to
say, no matter what shell is actually being called as sh or csh, it
should provide a 100% compatible version, no differences, no "upgrades".
This is to provide compatibility whn working with multiple versions of
Unix.
I write many scripts in sh on Solaris, and find they just don't work on
Linux because /bin/sh on Linux is really /bin/bash and is not bacwards
compatible. I HATE this. We shouldn't do this, and should do anything
like this.

> (Originally csh was created to get a shell with better interactive
> features the original Bourne shell and tcsh is much better for
> interactive use than 'classic' csh - indeed a modern /bin/sh is better
> than 'classic' csh.  For writing scripts the Bourne-derivatives is much
> better than csh and it has long been strongly recommended that one
> should not write scripts for csh. One cannot even assume that
> all systems have csh installed - Posix doesn't require it but it does
> require /bin/sh to be present.) 

and /bin/sh should be classic /bin/sh not some version which is going to
break my shit when I port it over! I'm so glad this is the case with
FreeBSD :-)

> 'csh' does run pure csh, and nothing else. The latest version of csh
> which happens to be renamed to tcsh to be exact.  That this latest
> version is not 100% compatible with earlier versions might be
> unfortunate but very few software packages never break backwards
> compatibility.

How about when working with multiple versions of the same shell on
different OS's? surely you can see the problem there.

> > 'sh' should be pure sh, not what Linux does and bastardize it as
> > /bin/bash
> 
> There is no such thing as "pure sh".  It you believe otherwise please
> tell us what you think such a shell would look like and exactly what
> features should be in it.
> (Hint: Current standards require /bin/sh to have several features that
> were not available on early Unix versions.)

Then we should follow current standards. Not pretend one shell is
another!

> > If someon wants a more powerful shell, they can install it themselves.
> 
> Keep in mind that FreeBSD's /bin/sh is a more powerful shell than was
> available in, say, v7 Unix.

Yes but AFAIK it's compatible in every way I've tried with say, Sun's
/bin/sh, and I've tried some pretty complex shell scripts.

-- 
Avleen Vig
Systems Administrator
Personal: www.silverwraith.com
EFnet:    irc.mindspring.com (Earthlink user access only)


More information about the freebsd-hackers mailing list