Falando como um novato no bash, eu atualizei meu .bashrc via copy / paste + github e me deparei com o :
comando que desconfia tanto de mim quanto do google. por exemplo : ${USER_BASH_COMPLETION_DIR:=~/.bash_completion.d}
.
Sem essa declaração originalmente no meu .bashrc e digitando essas coisas no meu terminal ( -> indica saída relevante):
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> /Users/sh/.bash_completion.d
E:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
echo $USER_BASH_COMPLETION_DIR
-> asdf
Mas:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> asdf
Eu não entendi!
1) Como o comando dois pontos define uma variável, mas não pode sobrescrever uma definida por export
?
2) Qual é a lógica por trás do uso :
em alguns arquivos .bashrc?
Usando o Mac 10.6.8
(fora do contexto, inclua a palavra-chave dois pontos apenas para ajudar outras pessoas como eu que tentaram pesquisar esse termo)