Pour obtenir que /bin/sh
exécute ~/.bashrc
de la même manière que /bin/bash
le fait, vous devrez faire ce qui suit.
-
Ajoutez les lignes suivantes à ~/.profile
.
LOGINSHELL=YES
export ENV=~/.shrc
-
Créez le fichier ~/.shrc
contenant la ligne suivante.
if [ "$LOGINSHELL" != "YES" ]; then source ~/.bashrc; fi
Pour faciliter le débogage, j'ajoute généralement la ligne suivante au début du fichier ~/.profile
.
export DEBUGSHELL=YES
Cette ligne peut être commentée une fois le débogage terminé, comme indiqué ci-dessous.
#export DEBUGSHELL=YES
Ensuite, ajoutez des déclarations conditionnelles echo
au début et à la fin des fichiers tels que ~/.profile
, ~/.bashrc
, ~/.shrc
et autres. Par exemple, ~/.shrc
contiendrait ce qui suit.
if [ "$DEBUGSHELL" = "YES" ]; then echo entered .shrc; fi
if [ "$LOGINSHELL" != "YES" ]; then source ~/.bashrc; fi
if [ "$DEBUGSHELL" = "YES" ]; then echo exited .shrc; fi
Une autre idée, qui peut être utile, est de créer un fichier ~/.bashcm
pour contenir les commandes qui doivent être exécutées pour les shells de connexion et interactifs. Par exemple, c'est généralement ici que je place mes commandes alias
. Vous devrez également inclure la ligne suivante dans vos fichiers ~/.profile
et ~/.bashrc
.
source ~/.bashcm