shell family tree, was Re: setenv or Redhat equal

der.hans plug-discuss@lists.PLUG.phoenix.az.us
Sun, 4 Nov 2001 13:08:43 -0700 (MST)


Am 03. Nov, 2001 schwätzte Kevin Brown so:

> I believe that setenv is a C shell, and maybe a Korn shell (never used Korn)
> environment variable.

In the beginning there was no shell. Then Bourne gave us his shell and it
was good. :)

Two main shell family trees, bourne, /bin/sh, and c, /bin/csh.

For variable assignment:

SH: whatever="value"; export $whatever
CSH: setenv whatever "value"

ksh and bash are derived from the functionality and syntax of the bourne
shell. Both ksh and bash allow the export to come before the assignment, but
sh doesn't.

tcsh is derived from the functionality and syntax of csh.

ksh and bash are completely compatable with sh, but they're scripts aren't
necessarily because they've added a lot of features. Any *NIX machine should
have /bin/sh ( even if it's a soft link to /bin/bash ), which is why scripts
required for the system to work should be written in sh. We often ignore
that in the Linux world. I know I do :).

ksh and bash allow advanced command line editing ( I think that originated
in csh or tcsh ).

There actually is no ksh for Linux. We have pdksh, a clone. I believe source
for ksh was finally released, but that it still isn't free software.

ash is /bin/sh from NetBSD.

I believe sash and zsh are also sh-based. sash doesn't rely on any external
libs. Same with ash? zsh is probably the most steroid-infused shell.

bsh is for those who want to do java at the command line.

For the OO fans there's shoop, the SHell Object Oriented Programming lib.

ciao,

der.hans
-- 
#  http://home.pages.de/~lufthans/   http://www.DevelopOnline.com/
#  A Polish friend of mine got an offer for a free account from AOL. The
#  login ID was "HELLO" and the passwd "CYMBAL". She says "cymbal" is
#  Polish for "sucker". "Hello sucker" a greeting from AOHell :).