tcsh fix
Erik Trulsson
ertr1013 at student.uu.se
Thu Nov 11 19:11:26 PST 2004
On Thu, Nov 11, 2004 at 06:30:23PM -0800, Avleen Vig wrote:
> On Thu, Nov 11, 2004 at 06:49:04PM -0600, Kevin Lyons wrote:
> > I think the problem can still be fixed. Simply put in /bin/tcsh and let
> > /bin/csh be what it actually is, which is to say /bin/csh. I realize
> > that will add all of 300kB to the system. And there would also have to
> > be an entry for tcsh in /etc/shells. Should I send a patch?
> >
> > Developers have a right to expect a certain basic level of functionality
> > on a system. When he calls fopen() he should get fopen, when he calls
> > /bin/bash he should get /bin/bash not zsh nor sh nor ksh.
When /bin/bash is called he should get a message saying that there is
no such program, since bash has no business being installed under /bin.
(This for FreeBSD - other systems have other conventions.)
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.
Other peoples opinions differ however, and last time the future of csh/tcsh
was discussed (in a *long* bikeshed-thread) the decision was that
/bin/csh should be upgraded to the latest version of tcsh.
If one is to have csh in the base system this was probably the right
decision.
(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.)
>
> I have to agree with Kevin's sentiments on principle.
> 'csh' should run pure csh, not anything else.
'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.
> '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.)
The only real problem with having bash as /bin/sh is that people tend
to write scripts using bash-specific features and forget that such
scripts are not portable to systems using a less powerful /bin/sh.
>
> 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.
--
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se
More information about the freebsd-hackers
mailing list