Berbicara sebagai pemula bash saya telah memutakhirkan .bashrc saya melalui copy / paste + github dan saya telah menemukan :
perintah yang membingungkan saya dan google. mis : ${USER_BASH_COMPLETION_DIR:=~/.bash_completion.d}
.
Tanpa pernyataan ini awalnya di .bashrc saya, dan mengetikkan hal ini ke terminal saya ( -> menunjukkan output yang relevan):
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> /Users/sh/.bash_completion.d
Dan:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
echo $USER_BASH_COMPLETION_DIR
-> asdf
Tapi:
: ${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
Saya tidak mengerti!
1) Bagaimana perintah titik dua mengatur variabel tetapi tidak dapat menimpa satu set oleh export
?
2) Apa logika di balik penggunaan :
dalam beberapa .bashrc?
Menggunakan Mac 10.6.8
(di luar konteks termasuk kata kunci usus hanya untuk membantu orang lain seperti saya yang mencoba mencari istilah itu)