J'ai besoin d'ajouter un répertoire à PKG_CONFIG_PATH
. Normalement, j'utiliserais la norme
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig
mais PKG_CONFIG_PATH
n'a pas été défini précédemment sur mon système. Par conséquent, la variable commence par un :
caractère, qui lui dit de chercher d'abord dans le répertoire courant. Je ne veux pas ça. J'ai opté pour ce qui suit,
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig
mais ça a l'air tellement moche. Existe-t-il un meilleur moyen? Quelle est la manière appropriée d'ajouter conditionnellement les deux-points si et seulement si la variable a déjà été définie ?
Réponse acceptée :
Vous êtes sur la bonne voie avec le ${:+}
opérateur d'expansion, il vous suffit de le modifier légèrement :
V=${V:+${V}:}new_V
Les premières accolades se développent en $V
et les deux-points si V
est déjà défini sinon sur rien - ce qui est exactement ce dont vous avez besoin (et probablement aussi l'une des raisons de l'existence de l'opérateur).
Ainsi dans votre cas :
export "PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}$(pyenv prefix)/lib/pkgconfig"