Para que /bin/sh ejecute ~/.bashrc de la misma manera que /bin/bash , deberías hacer lo siguiente.
-
Agregue las siguientes líneas a ~/.profile .
LOGINSHELL=YES
export ENV=~/.shrc
-
Cree el archivo ~/.shrc que contiene la siguiente línea.
if [ "$LOGINSHELL" != "YES" ]; then source ~/.bashrc; fi
Para ayudar en la depuración, generalmente agrego la siguiente línea al principio del archivo ~/.profile .
export DEBUGSHELL=YES
Esta línea se puede comentar cuando se realiza la depuración, como se muestra a continuación.
#export DEBUGSHELL=YES
A continuación, agregue sentencias condicionales 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 que contenga los comandos que deben ejecutarse tanto para el inicio de sesión como para shells interactivos. Por ejemplo, aquí es donde generalmente coloco mis comandos alias . También deberá incluir la siguiente línea en sus archivos ~/.profile y ~/.bashrc .
source ~/.bashcm