Utilisation de direnv
Instalar direnv
Il s'agit d'un exécutable lié statiquement qui s'accroche à votre Shell (csh, bash, etc.).
sudo apt-get install direnv && echo "eval "$(direnv hook bash)"" >> ~/.bashrc
Maintenant, dans le dossier dans lequel vous souhaitez que les variables d'environnement soient définies, ajoutez une balise .direnvrc
qui doit avoir une syntaxe bash valide. Dans votre cas, par exemple, vous pouvez charger à la fois la gestion de la version de pyenv et vos propres variables en définissant le paramètre .direnvrc
à :
use_python() {
local python_root=$PYENV_ROOT/versions/$1
load_prefix "$python_root"
if [[ -x "$python_root/bin/python" ]]; then
layout python "$python_root/bin/python"
else
echo "Error: $python_root/bin/python can't be executed."
exit
fi
}
export CUSTOM_VAR="xyz";
Vous pouvez voir d'autres exemples sur leur wiki
<sup>Merci à <a href="https://askubuntu.com/users/850195/chris-kuehl">@ChrisKuehl </a>dans les commentaires de la suggestion</sup>
Une autre approche alternative serait d'outrepasser l'option PROMPT_COMMAND
(comme suggéré dans les commentaires par @steeldriver ) pour pointer vers une fonction qui charge votre variable d'environnement, en ajoutant quelque chose comme ceci à votre fichier .bashrc
prmfn() {
if [ "$PWD" == "yourdirectorypath" ]; then
export CUSTOM_ENV_VAR=value
else
unset CUSTOM_ENV_VAR
fi
}
export PROMPT_COMMAND=prmfn
Maintenant, quand vous entrez yourdirectorypath
il mettra automatiquement CUSTOM_ENV_VAR
quand tu en sortiras, il y aura unset
(supprimer) la variable, donc cette variable n'est disponible que lorsque le répertoire courant est yourdirectorypath