From ksh:
- all control structures, including select
- shell functions
- process substitution (even w/o /dev/fd)
- parameter substitution, including ${foo-bar},${foo?bar},${foo%%bar}, etc.
- RANDOM, SECONDS, LINENO, CDPATH, IFS
- $(...) and `...` command substitution
- regexp filename generation (globbing)
- tilde expansion
- coprocesses
- job control
- cd -, cd old new
- fc, fc -e -
- aliases
- let, read
From tcsh:
- repeat (with a more ksh-like syntax)
- ! history substitution and : modifiers
- termcap support
- PROMPT with %x sequences
- login/logout monitoring
- chcwd, precmd, periodic
- pushd/popd
- sched
- = substitution for directory stack entries
- brace expansion
- noclobber, notify, ignoreeof, autolist, correct,
dextract, nobeep, printexitvalue, pushdtohome, pushdsilent, etc.
From bash:
- $[...] arithmetic substitution
- the readline command line editor
Other stuff:
- "echo =ls" is the same as "echo `which ls`"
- recursive directory search in filename generation (for example,
"ls ..../*.c" lists all .c files in the hierarchy)
- aliases can optionally be expanded anywhere on the command line
--
Paul Falstad, pfal...@phoenix.princeton.edu PLink:HYPNOS GEnie:P.FALSTAD
And Dinsdale said, "You've been a naughty boy, Clement," and splits me nostrils
open, and saws me leg off, and pulls me liver out. And I said, "My name's not
Clement." And then he loses his temper. And he nails me head to the floor.
You can now ftp this from princeton.edu, so you don't have to deal with
my stupid shar files. You can get it as pub/zsh1.0.tar.Z.