Para conseguir /bin/sh
para ejecutar ~/.bashrc
de la misma manera /bin/bash
hace, tendría que hacer lo siguiente.
-
Añade las siguientes líneas a ~/.profile
.
LOGINSHELL=YES
export ENV=~/.shrc
-
Crear el archivo ~/.shrc
que contiene la siguiente línea.
if [ "$LOGINSHELL" != "YES" ]; then source ~/.bashrc; fi
Para ayudar a la depuración, suelo añadir la siguiente línea al principio del ~/.profile
archivo.
export DEBUGSHELL=YES
Esta línea puede ser comentada cuando se termine de depurar, como se muestra a continuación.
#export DEBUGSHELL=YES
A continuación, añada la condición echo
al principio y al final de los archivos como ~/.profile
, ~/.bashrc
, ~/.shrc
y otros. Por ejemplo, ~/.shrc
contendría lo siguiente.
if [ "$DEBUGSHELL" = "YES" ]; then echo entered .shrc; fi
if [ "$LOGINSHELL" != "YES" ]; then source ~/.bashrc; fi
if [ "$DEBUGSHELL" = "YES" ]; then echo exited .shrc; fi
Otra idea, que puede ser útil, es crear un archivo ~/.bashcm
para contener los comandos que deben ser ejecutados tanto para el login como para los shells interactivos. Por ejemplo, aquí es donde suelo colocar mi alias
comandos. También tendrá que incluir la siguiente línea en ambos ~/.profile
y ~/.bashrc
archivos.
source ~/.bashcm