I use 'echo $0' to see what shell I'm using.
That is likely not the case there, and any such file names are unlikely to exist. Just say: which "$0"
$ which "$(echo $0)"
which: illegal option -- b
usage: which [-as] program ...
$ echo $0
-bash
OSX. True story.fish: $(...) is not supported. In fish, please use '(echo)'. which "$(echo $0)" ^
;)
Not true: you can be in a shell not in $PATH, and if you executed it from a relative path, which $0 will not find it if you cd to a different location.