En csh
de la familia, tendrás tu shell en funcionamiento con este comando:
% echo $shell
Si csh
se ejecutaba, directa o indirectamente, desde un shell de la familia Bourne que tenía su variable SHELL exportada, siendo este último el caso más común, la variable SHELL permanecería intacta por lo que echo $SHELL
seguirá mostrando su valor anterior, lo que resultaría confuso.
Esto es lo que te ocurre, uno de los procesos madre de tu tcsh
sesión fue bash
. Si bash
se inicia con el SHELL
se establece la ruta de acceso a bash
a pesar de lo que dice su documentación. Tenga en cuenta que el lanzamiento de una nueva familia de shell Bourne no habría cambiado tampoco la variable SHELL si está establecida. SHELL no es definitivamente la forma de identificar qué shell está ejecutando, sólo para saber qué shell es su shell por defecto cuando está en un entorno POSIX.
Una forma portátil de saber qué shell se está ejecutando actualmente sería:
ps -o comm= -p $$
Sin embargo, este último comando supone $$
se establece en el PID del proceso actual, que desafortunadamente algunas conchas exóticas como fish
romper. Una forma aún más portátil que soluciona este problema es:
env sh -c 'basename $(ps -o comm= -p $(ps -o ppid= -p $$))'