csh vs tcsh
Jerry Feldman
gaf at blu.org
Wed Feb 26 14:23:37 EST 2003
On Wed, 26 Feb 2003 17:19:48 UTC
John Chambers <jc at trillian.mit.edu> wrote:
> There's a good historic irony here. Bill Joy apparently originally
> wrote csh as an improved programming tool, and didn't intend it as an
> interactive shell to replace sh. There have been a number of analyses
> explaining how he failed on both goals. For any number of reasons,
> csh is much more difficult to use as a scripting language than sh.
> But the syntax is better than sh's for a human typist. Also, csh
> introduced a history mechanism that turns out to be easier on the
> human brain than the different one introduced in ksh. So csh and its
> clones are widely preferred as an interactive shell, even by people
> who write their shell scripts for sh or ksh or bash.
CSH presented several important features. History is one. The other is a
dual startup configuration:
.login for the login shell, executed once.
.cshrc for every shell and subshell
.logout
built-in evaluator. In the Bourne shell, expressions were evaluated by
the test(1) command (The left square bracket ([) is a Unix command
linked to test.
Command line recall.
And many more. Virtually all of these were subsequently incorporated
into the Korn (and later POSIX) shell.
> Of course, there are now even more people who prefer to use perl, tcl
> or python when the script grows to a dozen lines or so. These are all
> much better programming languages than any of the *sh interpreters.
Shell scripts are not intended to be used as programming languages. They
are intented to be used for small tasks. The more complex the task the
least suited a shell script is. One example of a complex script is
lint(1). The lint(1) front end (on Unix) is implemented as a shell
script. it provides a wrapper or glue for the lint(1) front end and back
end.
Perl, Python and TCL are all designed to be used as programming
languages. Perl was designed to replace SED and AWK. Complete
applications are written in Perl, Python and TCL.
BTW: I do not agree with Derek that csh scripting is brain damaged. The
intent of the CSH scripting language is that it is similar to the C
language where Bourne scripting in much different. I don't think the
goal was accomplished. (I personally prefer either KSH or BASH).
--
Jerry Feldman <gaf at blu.org>
Boston Linux and Unix user group
http://www.blu.org PGP key id:C5061EA9
PGP Key fingerprint:053C 73EC 3AC1 5C44 3E14 9245 FB00 3ED5 C506 1EA9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.blu.org/pipermail/discuss/attachments/20030226/de4fd10f/attachment-0002.sig>
More information about the Discuss
mailing list