A possible solution to shell schizms. Interactively I use csh/tcsh, mostly 'cause that's what I was brought up on and because the history and completion features are much more sane than anything else. But you can't script in csh. At least, not sanely. bash isn't the answer since it has many subtle differences from sh.

What's needed is a shell with pure bourne shell syntax, with an orthogonal set of features for convenience of interaction, which are sufficiently distinguished from the shell's scripting features.

Rather than spawning yet another bourne shell, perhaps the answer I'm looking for is to write the interactive elements of the shell as a shell script:

while true; do
  echo -n `pwd`": "
  read COMMAND
  eval $COMMAND