Necesito agregar un directorio a PKG_CONFIG_PATH
. Normalmente, usaría el estándar
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig
pero PKG_CONFIG_PATH
no se ha configurado previamente en mi sistema. Por lo tanto, la variable comienza con un :
carácter, que le dice que busque primero en el directorio actual. No quiero eso. Me decidí por lo siguiente,
export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig
pero eso parece tan feo. ¿Hay una mejor manera? ¿Cuál es la forma adecuada de agregar condicionalmente los dos puntos si y solo si la variable ya se ha establecido?
Respuesta aceptada:
Estás en el camino correcto con el ${:+}
operador de expansión, solo necesita modificarlo ligeramente:
V=${V:+${V}:}new_V
Las primeras llaves se expanden a $V
y los dos puntos iff V
ya está configurado en nada, que es exactamente lo que necesita (y probablemente también una de las razones de la existencia del operador).
Así en su caso:
export "PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}$(pyenv prefix)/lib/pkgconfig"