Sending Tcsh to packages/ports ...

Polytropon freebsd at
Fri Mar 29 02:32:01 UTC 2019

On Fri, 29 Mar 2019 07:25:45 +0530, Mayuresh Kathe wrote:
> Since Tcsh is usually imported, why not send it to packages/ports 
> collection?

Because it is the system's default interactive shell.

> I agree that "csh" is an historically important artifact, but do we need 
> to still rely on that?

There are users who prefer the C shell - as an interactive shell,
always keep in mind! - over bash. Others use zsh (which I'd even
call "the most professional shell", even though bash users might
feel offended), and others prefer the ksh. All those advanced shells
are available through the ports collection.

> I have been using "csh" ever since I started using FreeBSD, liked it, 
> but it doesn't feel light like plain old "sh" nor is as feature-full as 
> "bash".

None of those cases is intended.

The Bourne shell, sh (on FreeBSD, technically: the Almquist shell, ash)
is the system's default scripting shell, and used interactively only
in an emergency, and even then it often just starts another shell.
System services heavily rely on the standardized behaviour it
implements. Due to that kind of use, its interactive features are
next to non-existent, and nobody cares, because it doesn't matter.
The extended features of bash, often called bashisms, are usually
non-POSIX extensions that sh does not have. Scripts that use them
will need to require bash as a runtime dependency.

This is why csh does not feel like sh - it's a totally different

The C shell implements a specific subset and "lookalikes" from
the C programming language and is primarily intended for interactive
use. It's scripting use is considered harmful and should not be
attempted by any halfway sane being. ;-)

However, some users prefer the way this shell works interactively
over how bash does it, and the way it can be configured and
accomodated to specific completition scenarios.

> To top that, the installer asks me to choose between "csh" and 
> "tcsh" in-spite of being the same binary.

I have not yet understood this differentiation, because the
system's csh _is_ a tcsh. Maybe this just installs some
additional symlink?

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

More information about the freebsd-questions mailing list