Como concatenar caminhos de variáveis de ambiente de uma maneira mais limpa no bash?

1

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!

    
por Charles 28.09.2010 / 19:20

2 respostas

5

Esta sintaxe funciona:

export LD_LIBRARY_PATH=$NEW_PATH${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
    
por 28.09.2010 / 19:58
0

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.

    
por 29.09.2010 / 05:40