In Terminal, how can you determine which shell is actually running? Using Terminal on OS X 10.11.4, initializing Terminal opens a new window running bash (by default). As I understand it, inputting echo $SHELL should output the shell that said command is submitted to. So, why do I get this output after switching from bash to tcsh?

[&lt;dir&gt;] &lt;username&gt;$ tsch
[&lt;dir&gt;] &lt;username&gt;% echo $SHELL
/bin/bash
It depends on the shell you are running in.

If it is a POSIX confirming shell e.g. bash, ash,ash, sh, and some others e.g.  csh, tcsh then echo $0 will return the shell's name

e.g. 

~ $ bash
bash-3.2$ echo $0
bash


or 

~ $ ksh
$ echo $0
ksh


However not all shells are POSIX e.g. I used to use ipython shell profile and now fish