Je suis actuellement en train de remplacer la fonction intégrée cd
pour créer un fichier d'environnement basé sur l'environnement en cours de construction.
Ma principale question est de savoir comment cd
fonctionne quand j'ai shopt -s autocd
activé - en s'appuyant sur autocd
pour accéder aux répertoires spécifiques, mon source
ne sont pas exécutées. Où puis-je trouver plus d'informations sur la façon dont autocd
exécute cd
et pourquoi cela ne fonctionne qu'en appelant explicitement cd
?
Mon .bashrc
contient ceci pour le "sourcing automatique" :
cd() {
builtin cd "$@"
if [[ `pwd` == '/home/ubuntu/deploys/staging' ]]; then
echo "Sourcing ~/.appconfig/staging.env!";
source /home/ubuntu/.appconfig/staging.env;
fi
if [[ `pwd` == '/home/ubuntu/deploys/demo' ]]; then
echo "Sourcing ~/.appconfig/demo.env!"
source /home/ubuntu/.appconfig/demo.env;
fi
if [[ `pwd` == '/home/ubuntu/deploys/prod' ]]; then
echo "Sourcing ~/.appconfig/prod.env!"
source /home/ubuntu/.appconfig/prod.env;
fi
}
Je sais que c'est un peu dangereux et que cela pourrait avoir des conséquences inattendues, mais je peux vivre avec ça pour le moment. S'il existe une meilleure solution pour sourcer automatiquement une liste de var d'environnement lorsque cd
dans un dir, je suis tout ouïe.