I'm having problems setting Terminal.app's default shell. It appears to work using a command line utility which sets the shell for the account, however not in Terminal.app's dialog which is for each session. I find that if I set the shell system with with 'chsh', the $SHELL variable in Terminal.app correctly reflects the shell. If I change the shell in Terminal.app only, $SHELL does not correctly reflect the shell, however the shell appears to be the correct shell running. I tried this on a temp account to rule out other interactions and it has the same behavior.
Here is a use case: When I run in Terminal.app:
$ chsh -s /bin/ksh
and invoke Terminal.app, the shell is correctly changed:
$ echo $SHELL
/bin/ksh
The problem is if try similar through Terminal.app->Preferences->General->Shells open with->Command->/bin/ksh
$ echo $SHELL
/bin/bash
Yet when I try command completions with TAB, it reflects ksh behavior.
Therefore, my suspicion is there is something overriding the SHELL environment variable where it is always SHELL=/bin/bash, despite the shell being different than that.
Does anyone know if Apple has a bug here?