Modification de la variable $ path de zsh dans un script à générer
-
05-07-2019 - |
Question
J'ai hérité d'un script zsh qui configure un ensemble de variables d'environnement pour certaines simulations. Il veut éditer la variable $ path afin de pouvoir trouver certains scripts Perl:
typeset -U path
path=( ${SIMENV_BIN} $path )
Cependant, lorsque je source le script ( source setup.source
), la variable $ path reste intacte. Si je recopie ces lignes à l'invite de commande, elles font mettent à jour $ path. Si je sauve des échos dans le script et que je le source à nouveau, la commande typeset semble effacer la variable $ path.
Est-ce que cela vous dérangerait de m'expliquer ce qui se passe et comment je peux y remédier?
La solution
Par défaut, la commande typeset crée une nouvelle variable portant le nom fourni local à la fonction actuelle. Par conséquent, les modifications apportées à cette variable seront perdues lors du retour de la fonction. Ajoutez l'option -g
:
typeset -gU path
Ceci empêchera la localisation de la variable.
Autres conseils
Je pense que vous devrez peut-être utiliser .zshenv car il provient de tous les appels du shell.