Esta sintaxe funciona:
export LD_LIBRARY_PATH=$NEW_PATH${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
Para modificar meus caminhos (como LD_LIBRARY_PATH ou PYTHONPATH), primeiro verifique se a variável existe. Nesse caso, estou concatenando meu valor antigo com o novo (separado por um ponto-e-vírgula), caso contrário, configurações minha variável para o novo valor.
NEW_PATH='/path/to/new/path'
if [ $LD_LIBRARY_PATH ]
then
export LD_LIBRARY_PATH=$NEW_PATH:$LD_LIBRARY_PATH
else
export LD_LIBRARY_PATH=$NEW_PATH
fi
Funciona, mas é um pouco desajeitado quando você tem muitos desses scripts no script: existe um truque inteligente para fazer desse bloco um bom forro?
Obrigado!
Então talvez isso não seja exatamente o que você pediu, mas no topo você poderia fazer:
if [ -z "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH=/some/sane/default
fi
... e então você sabe que está sempre pronto para que você possa deixar de fora o else
acima.
Tags bash shell path unix-shell