Je dois autoriser plusieurs applications à ajouter à une variable système ($ PYTHONPATH dans ce cas). Je pense à désigner un répertoire où chaque application peut ajouter un module (par exemple .bash_profile_modulename). J'ai essayé quelque chose comme ça dans ~/.bash_profile:source tous les fichiers dans un répertoire de .bash_profile
find /home/mike/ -name ".bash_profile_*" | while read FILE; do
source "$FILE"
done;
mais cela ne semble pas fonctionner.
Un script de test rapide fonctionne pour moi. Pouvez-vous être plus précis quant à ce que vos fichiers contiennent et ce que «ne semble pas fonctionner» signifie? –
Les fichiers ressemblent à: export PYTHONPATH =/testpath /: $ PYTHONPATH Le problème est qu'il n'ajoute pas/testpath/au PYTHONPATH. –
Juste pour expliquer pourquoi le script original ne fonctionne pas: les fichiers proviennent d'une boucle while dans un pipeline; Les builtins bash utilisés dans les pipelines s'exécutent dans des sous-cases, de sorte que tout ce qui est défini par les fichiers sources disparaît lorsque le sous-shell se ferme. La solution (comme dans les réponses ci-dessous) est d'éliminer le pipeline. –