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