Виступаючи як новачок-баш, я модернізував свій .bashrc за допомогою copy / paste + github, і я натрапив на :команду, яка поєднує і мене, і Google. напр : ${USER_BASH_COMPLETION_DIR:=~/.bash_completion.d}.
Без цього твердження спочатку в моєму .bashrc і введення цього матеріалу в мій термінал ( -> вказує відповідний вихід):
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> /Users/sh/.bash_completion.d
І:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
echo $USER_BASH_COMPLETION_DIR
-> asdf
Але:
: ${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
Я не розумію!
1) Як команда двокрапки задає змінну, але не може замінити один набір export?
2) Яка логіка використання :деяких файлів .bashrc?
Використання Mac 10.6.8
(поза контекстом включають двокрапку ключових слів, щоб допомогти іншим, як я, які намагалися шукати цей термін)