What is the relation between the values of these two variables? Could
the doc strings please mention something about it? (Does
explicit-shell-file-name override shell-file-name for explicitly
requested shells? Are those the shells started with M-x shell? )
`explicit-shell-file-name' is only ever used by M-x shell. It does
(or explicit-shell-file-name
(getenv "ESHELL") shell-file-name)
which obviously prefers $ESHELL to `shell-file-name' and
`explicit-shell-file-name' to $ESHELL. Note that it was different in
Emacs 21:
(or explicit-shell-file-name
(getenv "ESHELL")
(getenv "SHELL")
"/bin/sh")
Here `shell-file-name' is absent. The idea is that e-s-f-n is the
"personal" shell and s-f-n is the "utility" shell used by such things as
M-! and (unless you customize `ediff-shell') M-x ediff.
What do you want added to e-s-f-n's doc string to clarify this?